diff --git a/docs/docs/apis/apis.md b/docs/docs/apis/apis.md
index 052c239af..c1b9af13b 100644
--- a/docs/docs/apis/apis.md
+++ b/docs/docs/apis/apis.md
@@ -14,6 +14,7 @@ The easiest way to have a look at them is, to import them in the [Swagger Editor
## Authentication API aka Auth
The authentication API (aka Auth API) is used for all operations on the currently logged in user.
+The user id is taken from the sub claim in the token.
| Service | URI |
|:--------|:----------------------------------------------------------------------------------------------------------------------------|
@@ -29,6 +30,7 @@ The authentication API (aka Auth API) is used for all operations on the currentl
## Management API
The management API is as the name states the interface where systems can mutate IAM objects like, organisations, projects, clients, users and so on if they have the necessary access rights.
+To identify the current organisation you can send a header `x-zitadel-orgid` or if no header is set, the organisation of the authenticated user is set.
| Service | URI |
|:--------|:----------------------------------------------------------------------------------------------------------------------------------------------------|
diff --git a/docs/docs/apis/proto/admin.md b/docs/docs/apis/proto/admin.md
index 654a4cde3..0d1c3cdae 100644
--- a/docs/docs/apis/proto/admin.md
+++ b/docs/docs/apis/proto/admin.md
@@ -17,8 +17,6 @@ It respondes as soon as ZITADEL started
- GET: /healthz
-
### IsOrgUnique
@@ -29,33 +27,27 @@ Checks whether an organisation exists by the given parameters
- GET: /orgs/_is_unique
-
### GetOrgByID
> **rpc** GetOrgByID([GetOrgByIDRequest](#getorgbyidrequest))
[GetOrgByIDResponse](#getorgbyidresponse)
+Returns an organisation by id
- GET: /orgs/{id}
-
-
### ListOrgs
> **rpc** ListOrgs([ListOrgsRequest](#listorgsrequest))
[ListOrgsResponse](#listorgsresponse)
Returns all organisations matching the request
-all queries need to match (ANDed)
+all queries need to match (AND)
- POST: /orgs/_search
-
### SetUpOrg
@@ -67,45 +59,37 @@ and adds the user to the orgs members as ORG_OWNER
- POST: /orgs/_setup
-
### GetIDPByID
> **rpc** GetIDPByID([GetIDPByIDRequest](#getidpbyidrequest))
[GetIDPByIDResponse](#getidpbyidresponse)
+Returns a identity provider configuration of the IAM
- GET: /idps/{id}
-
-
### ListIDPs
> **rpc** ListIDPs([ListIDPsRequest](#listidpsrequest))
[ListIDPsResponse](#listidpsresponse)
+Returns all identity provider configurations of the IAM
- POST: /idps/_search
-
-
### AddOIDCIDP
> **rpc** AddOIDCIDP([AddOIDCIDPRequest](#addoidcidprequest))
[AddOIDCIDPResponse](#addoidcidpresponse)
+Adds a new oidc identity provider configuration the IAM
- POST: /idps/oidc
-
-
### UpdateIDP
> **rpc** UpdateIDP([UpdateIDPRequest](#updateidprequest))
@@ -116,8 +100,6 @@ all fields are updated. If no value is provided the field will be empty afterwar
- PUT: /idps/{idp_id}
-
### DeactivateIDP
@@ -129,8 +111,6 @@ the state MUST be IDP_STATE_ACTIVE for this call
- POST: /idps/{idp_id}/_deactivate
-
### ReactivateIDP
@@ -142,8 +122,6 @@ the state MUST be IDP_STATE_INACTIVE for this call
- POST: /idps/{idp_id}/_reactivate
-
### RemoveIDP
@@ -154,8 +132,6 @@ RemoveIDP deletes the IDP permanetly
- DELETE: /idps/{idp_id}
-
### UpdateIDPOIDCConfig
@@ -167,7 +143,56 @@ all fields are updated. If no value is provided the field will be empty afterwar
- PUT: /idps/{idp_id}/oidc_config
+
+### GetDefaultFeatures
+
+> **rpc** GetDefaultFeatures([GetDefaultFeaturesRequest](#getdefaultfeaturesrequest))
+[GetDefaultFeaturesResponse](#getdefaultfeaturesresponse)
+
+
+
+
+
+
+### SetDefaultFeatures
+
+> **rpc** SetDefaultFeatures([SetDefaultFeaturesRequest](#setdefaultfeaturesrequest))
+[SetDefaultFeaturesResponse](#setdefaultfeaturesresponse)
+
+
+
+
+
+
+### GetOrgFeatures
+
+> **rpc** GetOrgFeatures([GetOrgFeaturesRequest](#getorgfeaturesrequest))
+[GetOrgFeaturesResponse](#getorgfeaturesresponse)
+
+
+
+
+
+
+### SetOrgFeatures
+
+> **rpc** SetOrgFeatures([SetOrgFeaturesRequest](#setorgfeaturesrequest))
+[SetOrgFeaturesResponse](#setorgfeaturesresponse)
+
+
+
+
+
+
+### ResetOrgFeatures
+
+> **rpc** ResetOrgFeatures([ResetOrgFeaturesRequest](#resetorgfeaturesrequest))
+[ResetOrgFeaturesResponse](#resetorgfeaturesresponse)
+
+
+
+
+
### GetOrgIAMPolicy
@@ -178,8 +203,6 @@ Returns the IAM policy defined by the administrators of ZITADEL
- GET: /policies/orgiam
-
### UpdateOrgIAMPolicy
@@ -191,8 +214,6 @@ it impacts all organisations without a customised policy
- PUT: /policies/orgiam
-
### GetCustomOrgIAMPolicy
@@ -203,8 +224,6 @@ Returns the customised policy or the default if not customised
- GET: /orgs/{org_id}/policies/orgiam
-
### AddCustomOrgIAMPolicy
@@ -215,8 +234,6 @@ Defines a custom ORGIAM policy as specified
- POST: /orgs/{org_id}/policies/orgiam
-
### UpdateCustomOrgIAMPolicy
@@ -227,8 +244,6 @@ Updates a custom ORGIAM policy as specified
- PUT: /orgs/{org_id}/policies/orgiam
-
### ResetCustomOrgIAMPolicyToDefault
@@ -240,8 +255,6 @@ ZITADEL will fallback to the default policy defined by the ZITADEL administrator
- DELETE: /orgs/{org_id}/policies/orgiam
-
### GetLabelPolicy
@@ -252,8 +265,6 @@ Returns the label policy defined by the administrators of ZITADEL
- GET: /policies/label
-
### UpdateLabelPolicy
@@ -265,8 +276,6 @@ it impacts all organisations without a customised policy
- PUT: /policies/label
-
### GetLoginPolicy
@@ -277,8 +286,6 @@ Returns the login policy defined by the administrators of ZITADEL
- GET: /policies/login
-
### UpdateLoginPolicy
@@ -290,8 +297,6 @@ it impacts all organisations without a customised policy
- PUT: /policies/login
-
### ListLoginPolicyIDPs
@@ -303,8 +308,6 @@ defined by the administrators of ZITADEL
- POST: /policies/login/idps/_search
-
### AddIDPToLoginPolicy
@@ -316,8 +319,6 @@ It impacts all organisations without a customised policy
- POST: /policies/login/idps
-
### RemoveIDPFromLoginPolicy
@@ -329,8 +330,6 @@ It impacts all organisations without a customised policy
- DELETE: /policies/login/idps/{idp_id}
-
### ListLoginPolicySecondFactors
@@ -341,8 +340,6 @@ Returns the available second factors defined by the administrators of ZITADEL
- POST: /policies/login/second_factors/_search
-
### AddSecondFactorToLoginPolicy
@@ -354,8 +351,6 @@ It impacts all organisations without a customised policy
- POST: /policies/login/second_factors
-
### RemoveSecondFactorFromLoginPolicy
@@ -367,8 +362,6 @@ It impacts all organisations without a customised policy
- DELETE: /policies/login/second_factors/{type}
-
### ListLoginPolicyMultiFactors
@@ -379,8 +372,6 @@ Returns the available multi factors defined by the administrators of ZITADEL
- POST: /policies/login/multi_factors/_search
-
### AddMultiFactorToLoginPolicy
@@ -392,8 +383,6 @@ It impacts all organisations without a customised policy
- POST: /policies/login/multi_factors
-
### RemoveMultiFactorFromLoginPolicy
@@ -405,8 +394,6 @@ It impacts all organisations without a customised policy
- DELETE: /policies/login/multi_factors/{type}
-
### GetPasswordComplexityPolicy
@@ -417,8 +404,6 @@ Returns the password complexity policy defined by the administrators of ZITADEL
- GET: /policies/password/complexity
-
### UpdatePasswordComplexityPolicy
@@ -430,8 +415,6 @@ it impacts all organisations without a customised policy
- PUT: /policies/password/complexity
-
### GetPasswordAgePolicy
@@ -442,8 +425,6 @@ Returns the password age policy defined by the administrators of ZITADEL
- GET: /policies/password/age
-
### UpdatePasswordAgePolicy
@@ -455,8 +436,6 @@ it impacts all organisations without a customised policy
- PUT: /policies/password/age
-
### GetPasswordLockoutPolicy
@@ -467,8 +446,6 @@ Returns the password lockout policy defined by the administrators of ZITADEL
- GET: /policies/password/lockout
-
### UpdatePasswordLockoutPolicy
@@ -480,8 +457,6 @@ it impacts all organisations without a customised policy
- PUT: /policies/password/lockout
-
### ListIAMMemberRoles
@@ -492,8 +467,6 @@ Returns the IAM roles visible for the requested user
- POST: /members/roles/_search
-
### ListIAMMembers
@@ -505,8 +478,6 @@ all queries need to match (ANDed)
- POST: /members/_search
-
### AddIAMMember
@@ -518,8 +489,6 @@ undefined roles will be dropped
- POST: /members
-
### UpdateIAMMember
@@ -531,8 +500,6 @@ The member has only roles provided by this call
- PUT: /members/{user_id}
-
### RemoveIAMMember
@@ -543,8 +510,6 @@ Removes the user from the membership list of ZITADEL
- DELETE: /members/{user_id}
-
### ListViews
@@ -557,8 +522,6 @@ they represent the delta of the event happend on the objects
- POST: /views/_search
-
### ClearView
@@ -572,8 +535,6 @@ Search requests will return wrong results until all deltas are recomputed
- POST: /views/{database}/{view_name}
-
### ListFailedEvents
@@ -586,8 +547,6 @@ For example if the SMTP-API wasn't able to send an email at the first time
- POST: /failedevents/_search
-
### RemoveFailedEvent
@@ -602,8 +561,6 @@ failed event. You can find out if it worked on the `failure_count`
- DELETE: /failedevents/{database}/{view_name}/{failed_sequence}
-
@@ -616,1090 +573,1250 @@ failed event. You can find out if it worked on the `failure_count`
### AddCustomOrgIAMPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org_id | string | - |
-| user_login_must_be_domain | bool | the username has to end with the domain of it's organisation (uniqueness is organisation based) |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddIAMMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| roles | repeated string | if no roles provided the user won't have any rights |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddIDPToLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | Id of the predefined idp configuration |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddMultiFactorToLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| type | zitadel.policy.v1.MultiFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| type | zitadel.policy.v1.MultiFactorType | - | enum.defined_only: true
enum.not_in: [0]
|
+
### AddMultiFactorToLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddOIDCIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| name | string | - |
-| styling_type | zitadel.idp.v1.IDPStylingType | - |
-| client_id | string | - |
-| client_secret | string | - |
-| issuer | string | - |
-| scopes | repeated string | - |
-| display_name_mapping | zitadel.idp.v1.OIDCMappingField | - |
-| username_mapping | zitadel.idp.v1.OIDCMappingField | - |
+
+| 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
|
+
### AddOIDCIDPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| idp_id | string | - | |
+
### AddSecondFactorToLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| type | zitadel.policy.v1.SecondFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| type | zitadel.policy.v1.SecondFactorType | - | enum.defined_only: true
enum.not_in: [0]
|
+
### AddSecondFactorToLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ClearViewRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| database | string | - |
-| view_name | string | - |
+
+| 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
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### DeactivateIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### DeactivateIDPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### FailedEvent
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| database | string | - |
-| view_name | string | - |
-| failed_sequence | uint64 | - |
-| failure_count | uint64 | - |
-| error_message | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| database | string | - | |
+| view_name | string | - | |
+| failed_sequence | uint64 | - | |
+| failure_count | uint64 | - | |
+| error_message | string | - | |
+
### GetCustomOrgIAMPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| org_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetCustomOrgIAMPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.OrgIAMPolicy | - |
-| is_default | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.OrgIAMPolicy | - | |
+| is_default | bool | - | |
+
### GetDefaultFeaturesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### GetDefaultFeaturesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| features | zitadel.features.v1.Features | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| features | zitadel.features.v1.Features | - | |
+
### GetIDPByIDRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetIDPByIDResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp | zitadel.idp.v1.IDP | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp | zitadel.idp.v1.IDP | - | |
+
### GetLabelPolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetLabelPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.LabelPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.LabelPolicy | - | |
+
### GetLoginPolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.LoginPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.LoginPolicy | - | |
+
### GetOrgByIDRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetOrgByIDResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org | zitadel.org.v1.Org | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| org | zitadel.org.v1.Org | - | |
+
### GetOrgFeaturesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| org_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetOrgFeaturesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| features | zitadel.features.v1.Features | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| features | zitadel.features.v1.Features | - | |
+
### GetOrgIAMPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### GetOrgIAMPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.OrgIAMPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.OrgIAMPolicy | - | |
+
### GetPasswordAgePolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetPasswordAgePolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordAgePolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordAgePolicy | - | |
+
### GetPasswordComplexityPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### GetPasswordComplexityPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordComplexityPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordComplexityPolicy | - | |
+
### GetPasswordLockoutPolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetPasswordLockoutPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordLockoutPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordLockoutPolicy | - | |
+
### HealthzRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### HealthzResponse
+This is an empty response
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### IDPQuery
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| [**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 | - |
+
+| 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 | - | |
+
### IsOrgUniqueRequest
if name or domain is already in use, org is not unique
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| name | string | - |
-| domain | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| name | string | - | string.min_len: 1
string.max_len: 200
|
+| domain | string | - | string.min_len: 1
string.max_len: 200
|
+
### IsOrgUniqueResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| is_unique | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| is_unique | bool | - | |
+
### ListFailedEventsRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListFailedEventsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated FailedEvent | TODO: list details |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated FailedEvent | TODO: list details | |
+
### ListIAMMemberRolesRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListIAMMemberRolesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| roles | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| roles | repeated string | - | |
+
### ListIAMMembersRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.member.v1.SearchQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.member.v1.Member | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.member.v1.Member | - | |
+
### ListIDPsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| 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 |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| sorting_column | zitadel.idp.v1.IDPFieldName | - |
-| result | repeated zitadel.idp.v1.IDP | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| sorting_column | zitadel.idp.v1.IDPFieldName | - | |
+| result | repeated zitadel.idp.v1.IDP | - | |
+
### ListLoginPolicyIDPsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| query | zitadel.v1.ListQuery | list limitations and ordering | |
+
### ListLoginPolicyIDPsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.idp.v1.IDPLoginPolicyLink | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.idp.v1.IDPLoginPolicyLink | - | |
+
### ListLoginPolicyMultiFactorsRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListLoginPolicyMultiFactorsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.policy.v1.MultiFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.policy.v1.MultiFactorType | - | |
+
### ListLoginPolicySecondFactorsRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListLoginPolicySecondFactorsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.policy.v1.SecondFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.policy.v1.SecondFactorType | - | |
+
### ListOrgsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| 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 |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| sorting_column | zitadel.org.v1.OrgFieldName | - |
-| result | repeated zitadel.org.v1.Org | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| sorting_column | zitadel.org.v1.OrgFieldName | - | |
+| result | repeated zitadel.org.v1.Org | - | |
+
### ListViewsRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListViewsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated View | TODO: list details |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated View | TODO: list details | |
+
### ReactivateIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ReactivateIDPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveFailedEventRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| database | string | - |
-| view_name | string | - |
-| failed_sequence | uint64 | - |
+
+| 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
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### RemoveIAMMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveIAMMemberResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveIDPFromLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveIDPFromLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveIDPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveMultiFactorFromLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| type | zitadel.policy.v1.MultiFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| type | zitadel.policy.v1.MultiFactorType | - | enum.defined_only: true
enum.not_in: [0]
|
+
### RemoveMultiFactorFromLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveSecondFactorFromLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| type | zitadel.policy.v1.SecondFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| type | zitadel.policy.v1.SecondFactorType | - | enum.defined_only: true
enum.not_in: [0]
|
+
### RemoveSecondFactorFromLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResetCustomOrgIAMPolicyToDefaultRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| org_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ResetCustomOrgIAMPolicyToDefaultResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResetOrgFeaturesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| org_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ResetOrgFeaturesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### SetDefaultFeaturesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| tier_name | string | - |
-| description | string | - |
-| audit_log_retention | google.protobuf.Duration | - |
-| login_policy_username_login | bool | - |
-| login_policy_registration | bool | - |
-| login_policy_idp | bool | - |
-| login_policy_factors | bool | - |
-| login_policy_passwordless | bool | - |
-| password_complexity_policy | bool | - |
-| label_policy | bool | - |
-| custom_domain | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| tier_name | string | - | string.max_len: 200
|
+| description | string | - | string.max_len: 200
|
+| audit_log_retention | google.protobuf.Duration | - | duration.gte.seconds: 0
duration.gte.nanos: 0
|
+| login_policy_username_login | bool | - | |
+| login_policy_registration | bool | - | |
+| login_policy_idp | bool | - | |
+| login_policy_factors | bool | - | |
+| login_policy_passwordless | bool | - | |
+| password_complexity_policy | bool | - | |
+| label_policy | bool | - | |
+| custom_domain | bool | - | |
+
### SetDefaultFeaturesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### SetOrgFeaturesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org_id | string | - |
-| tier_name | string | - |
-| description | string | - |
-| state | zitadel.features.v1.FeaturesState | - |
-| state_description | string | - |
-| audit_log_retention | google.protobuf.Duration | - |
-| login_policy_username_login | bool | - |
-| login_policy_registration | bool | - |
-| login_policy_idp | bool | - |
-| login_policy_factors | bool | - |
-| login_policy_passwordless | bool | - |
-| password_complexity_policy | bool | - |
-| label_policy | bool | - |
-| custom_domain | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| org_id | string | - | string.min_len: 1
string.max_len: 200
|
+| tier_name | string | - | string.max_len: 200
|
+| description | string | - | string.max_len: 200
|
+| state | zitadel.features.v1.FeaturesState | - | |
+| state_description | string | - | string.max_len: 200
|
+| audit_log_retention | google.protobuf.Duration | - | duration.gte.seconds: 0
duration.gte.nanos: 0
|
+| login_policy_username_login | bool | - | |
+| login_policy_registration | bool | - | |
+| login_policy_idp | bool | - | |
+| login_policy_factors | bool | - | |
+| login_policy_passwordless | bool | - | |
+| password_complexity_policy | bool | - | |
+| label_policy | bool | - | |
+| custom_domain | bool | - | |
+
### SetOrgFeaturesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### SetUpOrgRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org | SetUpOrgRequest.Org | - |
-| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) user.human | SetUpOrgRequest.Human | oneof field for the user managing the organisation |
+
+| 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 | |
+
### SetUpOrgRequest.Human
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_name | string | - |
-| profile | SetUpOrgRequest.Human.Profile | - |
-| email | SetUpOrgRequest.Human.Email | - |
-| phone | SetUpOrgRequest.Human.Phone | - |
-| password | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| email | string | TODO: check if no value is allowed |
-| is_email_verified | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| email | string | TODO: check if no value is allowed | string.email: true
|
+| is_email_verified | bool | - | |
+
### SetUpOrgRequest.Human.Phone
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| phone | string | has to be a global number |
-| is_phone_verified | bool | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| first_name | string | - |
-| last_name | string | - |
-| nick_name | string | - |
-| display_name | string | - |
-| preferred_language | string | - |
-| gender | zitadel.user.v1.Gender | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| name | string | - |
-| domain | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| name | string | - | string.min_len: 1
string.max_len: 200
|
+| domain | string | - | string.max_len: 200
|
+
### SetUpOrgResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
-| org_id | string | - |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| org_id | string | - | |
+| user_id | string | - | |
+
### UpdateCustomOrgIAMPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org_id | string | - |
-| user_login_must_be_domain | bool | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateIAMMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| roles | repeated string | if no roles provided the user won't have any rights |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateIDPOIDCConfigRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
-| issuer | string | - |
-| client_id | string | - |
-| client_secret | string | - |
-| scopes | repeated string | - |
-| display_name_mapping | zitadel.idp.v1.OIDCMappingField | - |
-| username_mapping | zitadel.idp.v1.OIDCMappingField | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
-| name | string | - |
-| styling_type | zitadel.idp.v1.IDPStylingType | - |
+
+| 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
|
+
### UpdateIDPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateLabelPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| primary_color | string | - |
-| secondary_color | string | - |
-| hide_login_name_suffix | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| primary_color | string | - | string.min_len: 1
string.max_len: 50
|
+| secondary_color | string | - | string.min_len: 1
string.max_len: 50
|
+| hide_login_name_suffix | bool | - | |
+
### UpdateLabelPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| allow_username_password | bool | - |
-| allow_register | bool | - |
-| allow_external_idp | bool | - |
-| force_mfa | bool | - |
-| passwordless_type | zitadel.policy.v1.PasswordlessType | - |
+
+| 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
|
+
### UpdateLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateOrgIAMPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_login_must_be_domain | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_login_must_be_domain | bool | - | |
+
### UpdateOrgIAMPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdatePasswordAgePolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| max_age_days | uint32 | - |
-| expire_warn_days | uint32 | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| max_age_days | uint32 | - | |
+| expire_warn_days | uint32 | - | |
+
### UpdatePasswordAgePolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdatePasswordComplexityPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| min_length | uint32 | - |
-| has_uppercase | bool | - |
-| has_lowercase | bool | - |
-| has_number | bool | - |
-| has_symbol | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| min_length | uint32 | - | |
+| has_uppercase | bool | - | |
+| has_lowercase | bool | - | |
+| has_number | bool | - | |
+| has_symbol | bool | - | |
+
### UpdatePasswordComplexityPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdatePasswordLockoutPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| max_attempts | uint32 | failed attempts until a user gets locked |
-| show_lockout_failure | bool | If an error should be displayed during a lockout or not |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| max_attempts | uint32 | failed attempts until a user gets locked | |
+| show_lockout_failure | bool | If an error should be displayed during a lockout or not | |
+
### UpdatePasswordLockoutPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### View
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| 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 | - |
+
+| 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 | - | |
+
diff --git a/docs/docs/apis/proto/app.md b/docs/docs/apis/proto/app.md
index ddbd8548d..501ebd6c6 100644
--- a/docs/docs/apis/proto/app.md
+++ b/docs/docs/apis/proto/app.md
@@ -6,6 +6,88 @@ title: zitadel/app.proto
+## Messages
+
+
+### APIConfig
+
+
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| client_id | string | - | |
+| client_secret | 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 | - | |
+
+
+
+
+### 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 | - | |
+| client_secret | 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 | - | |
+
+
+
+
## Enums
diff --git a/docs/docs/apis/proto/auth.md b/docs/docs/apis/proto/auth.md
index e55dad6a3..69cdf2efc 100644
--- a/docs/docs/apis/proto/auth.md
+++ b/docs/docs/apis/proto/auth.md
@@ -16,429 +16,363 @@ title: zitadel/auth.proto
- GET: /healthz
-
### GetMyUser
> **rpc** GetMyUser([GetMyUserRequest](#getmyuserrequest))
[GetMyUserResponse](#getmyuserresponse)
+Returns my full blown user
- GET: /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
-
-
### 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
-
-
### 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 authentications of the authorized user
- POST: /users/me/passwordless/_search
-
-
### AddMyPasswordless
> **rpc** AddMyPasswordless([AddMyPasswordlessRequest](#addmypasswordlessrequest))
[AddMyPasswordlessResponse](#addmypasswordlessresponse)
+Adds a new passwordless authentications to the authorized user
+Multiple passwordless authentications can be configured
- POST: /users/me/passwordless
-
-
### 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
-
-
### ListMyZitadelFeatures
> **rpc** ListMyZitadelFeatures([ListMyZitadelFeaturesRequest](#listmyzitadelfeaturesrequest))
[ListMyZitadelFeaturesResponse](#listmyzitadelfeaturesresponse)
+Returns a list of features, which are allowed on these organisation based on the subscription of the organisation
- POST: /features/zitadel/me/_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
-
-
@@ -448,667 +382,731 @@ title: zitadel/auth.proto
### AddMyAuthFactorOTPRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### AddMyAuthFactorOTPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| url | string | - |
-| secret | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| url | string | - | |
+| secret | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddMyAuthFactorU2FRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### AddMyAuthFactorU2FResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| key | zitadel.user.v1.WebAuthNKey | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| key | zitadel.user.v1.WebAuthNKey | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddMyPasswordlessRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### AddMyPasswordlessResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| key | zitadel.user.v1.WebAuthNKey | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| key | zitadel.user.v1.WebAuthNKey | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### GetMyEmailRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetMyEmailResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
-| email | zitadel.user.v1.Email | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| email | zitadel.user.v1.Email | - | |
+
### GetMyPasswordComplexityPolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetMyPasswordComplexityPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordComplexityPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordComplexityPolicy | - | |
+
### GetMyPhoneRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetMyPhoneResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
-| phone | zitadel.user.v1.Phone | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| phone | zitadel.user.v1.Phone | - | |
+
### GetMyProfileRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetMyProfileResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
-| profile | zitadel.user.v1.Profile | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| profile | zitadel.user.v1.Profile | - | |
+
### GetMyUserRequest
-GetMyUserRequest is an empty request
+This is an empty request
the request parameters are read from the token-header
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### GetMyUserResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user | zitadel.user.v1.User | - |
-| last_login | google.protobuf.Timestamp | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user | zitadel.user.v1.User | - | |
+| last_login | google.protobuf.Timestamp | - | |
+
### HealthzRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### HealthzResponse
+This is an empty response
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListMyAuthFactorsRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListMyAuthFactorsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated zitadel.user.v1.AuthFactor | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated zitadel.user.v1.AuthFactor | - | |
+
### ListMyLinkedIDPsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering
-PLANNED: queries for idp name and login name |
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| query | zitadel.v1.ListQuery | list limitations and ordering | |
+
### ListMyLinkedIDPsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.idp.v1.IDPUserLink | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.idp.v1.IDPUserLink | - | |
+
### ListMyPasswordlessRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListMyPasswordlessResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated zitadel.user.v1.WebAuthNToken | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated zitadel.user.v1.WebAuthNToken | - | |
+
### ListMyProjectOrgsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.org.v1.OrgQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.org.v1.Org | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.org.v1.Org | - | |
+
### ListMyProjectPermissionsRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListMyProjectPermissionsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated string | - | |
+
### ListMyUserChangesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.change.v1.ChangeQuery | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| query | zitadel.change.v1.ChangeQuery | - | |
+
### ListMyUserChangesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.change.v1.Change | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.change.v1.Change | - | |
+
### ListMyUserGrantsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| query | zitadel.v1.ListQuery | list limitations and ordering | |
+
### ListMyUserGrantsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated UserGrant | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated UserGrant | - | |
+
### ListMyUserSessionsRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListMyUserSessionsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated zitadel.user.v1.Session | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated zitadel.user.v1.Session | - | |
+
### ListMyZitadelFeaturesRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListMyZitadelFeaturesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated string | - | |
+
### ListMyZitadelPermissionsRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListMyZitadelPermissionsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated string | - | |
+
### RemoveMyAuthFactorOTPRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### RemoveMyAuthFactorOTPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveMyAuthFactorU2FRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| token_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| token_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveMyAuthFactorU2FResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveMyLinkedIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
-| linked_user_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveMyPasswordlessRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| token_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| token_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveMyPasswordlessResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveMyPhoneRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### RemoveMyPhoneResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResendMyEmailVerificationRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ResendMyEmailVerificationResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResendMyPhoneVerificationRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ResendMyPhoneVerificationResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### SetMyEmailRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| email | string | TODO: check if no value is allowed |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| email | string | TODO: check if no value is allowed | string.email: true
|
+
### SetMyEmailResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### SetMyPhoneRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| phone | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| phone | string | - | string.min_len: 1
string.max_len: 50
string.prefix: +
|
+
### SetMyPhoneResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateMyPasswordRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| old_password | string | - |
-| new_password | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateMyProfileRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| first_name | string | - |
-| last_name | string | - |
-| nick_name | string | - |
-| display_name | string | - |
-| preferred_language | string | - |
-| gender | zitadel.user.v1.Gender | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateMyUserNameRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_name | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_name | string | - | string.min_len: 1
string.max_len: 200
|
+
### UpdateMyUserNameResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UserGrant
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org_id | string | - |
-| project_id | string | - |
-| user_id | string | - |
-| roles | repeated string | - |
-| org_name | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| code | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| code | string | - | string.min_len: 1
string.max_len: 200
|
+
### VerifyMyAuthFactorOTPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### VerifyMyAuthFactorU2FRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| verification | zitadel.user.v1.WebAuthNVerification | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| verification | zitadel.user.v1.WebAuthNVerification | - | message.required: true
|
+
### VerifyMyAuthFactorU2FResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### VerifyMyEmailRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| code | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| code | string | - | string.min_len: 1
string.max_len: 200
|
+
### VerifyMyEmailResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### VerifyMyPasswordlessRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| verification | zitadel.user.v1.WebAuthNVerification | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| verification | zitadel.user.v1.WebAuthNVerification | - | message.required: true
|
+
### VerifyMyPasswordlessResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### VerifyMyPhoneRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| code | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| code | string | - | string.min_len: 1
string.max_len: 200
|
+
### VerifyMyPhoneResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| 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
index daf7064db..cf33cbf9c 100644
--- a/docs/docs/apis/proto/auth_n_key.md
+++ b/docs/docs/apis/proto/auth_n_key.md
@@ -6,6 +6,23 @@ title: zitadel/auth_n_key.proto
+## Messages
+
+
+### Key
+
+
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+| type | KeyType | - | |
+| expiration_date | google.protobuf.Timestamp | - | |
+
+
+
+
## Enums
diff --git a/docs/docs/apis/proto/change.md b/docs/docs/apis/proto/change.md
index 559866d7d..b1b4b30d3 100644
--- a/docs/docs/apis/proto/change.md
+++ b/docs/docs/apis/proto/change.md
@@ -6,5 +6,37 @@ title: zitadel/change.proto
+## 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 | - | |
+
+
+
+
+### 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/idp.md b/docs/docs/apis/proto/idp.md
index 2b676a729..de646c887 100644
--- a/docs/docs/apis/proto/idp.md
+++ b/docs/docs/apis/proto/idp.md
@@ -6,6 +6,104 @@ title: zitadel/idp.proto
+## 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 | - | |
+
+
+
+
+### 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 | - | |
+
+
+
+
+### OIDCConfig
+
+
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| client_id | string | - | |
+| issuer | string | - | |
+| scopes | repeated string | - | |
+| display_name_mapping | OIDCMappingField | - | |
+| username_mapping | OIDCMappingField | - | |
+
+
+
+
## Enums
diff --git a/docs/docs/apis/proto/management.md b/docs/docs/apis/proto/management.md
index 26f44f234..5b6d3dc70 100644
--- a/docs/docs/apis/proto/management.md
+++ b/docs/docs/apis/proto/management.md
@@ -16,8 +16,6 @@ title: zitadel/management.proto
- GET: /healthz
-
### GetOIDCInformation
@@ -28,310 +26,273 @@ title: zitadel/management.proto
- GET: /zitadel/docs
-
### GetIAM
> **rpc** GetIAM([GetIAMRequest](#getiamrequest))
[GetIAMResponse](#getiamresponse)
-GetIam returns some needed settings of the iam (Global Organisation ID, Zitadel Project ID)
+Returns some needed settings of the IAM (Global Organisation ID, Zitadel Project ID)
- GET: /iam
-
### 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)
-GetUserByLoginNameGlobal searches a user over all organisations
+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
- GET: /users/{user_id}/username
-
-
### 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
-
-
### SetHumanInitialPassword
> **rpc** SetHumanInitialPassword([SetHumanInitialPasswordRequest](#sethumaninitialpasswordrequest))
@@ -341,393 +302,338 @@ A Manager is only allowed to set an initial password, on the next login the user
- POST: /users/{user_id}/password/_initialize
-
### 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 authentications
- POST: /users/{user_id}/passwordless/_search
-
-
### RemoveHumanPasswordless
> **rpc** RemoveHumanPasswordless([RemoveHumanPasswordlessRequest](#removehumanpasswordlessrequest))
[RemoveHumanPasswordlessResponse](#removehumanpasswordlessresponse)
+Removed a configured passwordless authentication
- DELETE: /users/{user_id}/passwordless/{token_id}
-
-
### UpdateMachine
> **rpc** UpdateMachine([UpdateMachineRequest](#updatemachinerequest))
[UpdateMachineResponse](#updatemachineresponse)
+Changes a machine user
- PUT: /users/{user_id}/machine
-
-
### 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)
+Removed a machine key
- DELETE: /users/{user_id}/keys/{key_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
-
-
### 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
-
-
### 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))
@@ -737,32 +643,28 @@ 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
@@ -770,108 +672,96 @@ returns all projects my organisation got granted from another organisation
[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))
@@ -881,525 +771,460 @@ 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)
-RemoveProjectRole removes role from UserGrants, ProjectGrants and from Project
+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
-
-
### 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
-
-
### 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}
-
-
### 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
-
-
### 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)
-RemoveProjectGrant removes project grant and all user grants for this project grant
+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))
@@ -1409,8 +1234,6 @@ remove a list of user grants in one request
- DELETE: /user_grants/_bulk
-
### GetFeatures
@@ -1421,525 +1244,458 @@ remove a list of user grants in one request
- GET: /features
-
### GetOrgIAMPolicy
> **rpc** GetOrgIAMPolicy([GetOrgIAMPolicyRequest](#getorgiampolicyrequest))
[GetOrgIAMPolicyResponse](#getorgiampolicyresponse)
+Returns the org iam policy (this policy is managed by the iam administrator)
- GET: /policies/orgiam
-
-
### 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
-
-
### GetPasswordLockoutPolicy
> **rpc** GetPasswordLockoutPolicy([GetPasswordLockoutPolicyRequest](#getpasswordlockoutpolicyrequest))
[GetPasswordLockoutPolicyResponse](#getpasswordlockoutpolicyresponse)
+The password lockout policy is not used at the moment
- GET: /policies/password/lockout
-
-
### GetDefaultPasswordLockoutPolicy
> **rpc** GetDefaultPasswordLockoutPolicy([GetDefaultPasswordLockoutPolicyRequest](#getdefaultpasswordlockoutpolicyrequest))
[GetDefaultPasswordLockoutPolicyResponse](#getdefaultpasswordlockoutpolicyresponse)
+The password lockout policy is not used at the moment
- GET: /policies/default/password/lockout
-
-
### AddCustomPasswordLockoutPolicy
> **rpc** AddCustomPasswordLockoutPolicy([AddCustomPasswordLockoutPolicyRequest](#addcustompasswordlockoutpolicyrequest))
[AddCustomPasswordLockoutPolicyResponse](#addcustompasswordlockoutpolicyresponse)
+The password lockout policy is not used at the moment
- POST: /policies/password/lockout
-
-
### UpdateCustomPasswordLockoutPolicy
> **rpc** UpdateCustomPasswordLockoutPolicy([UpdateCustomPasswordLockoutPolicyRequest](#updatecustompasswordlockoutpolicyrequest))
[UpdateCustomPasswordLockoutPolicyResponse](#updatecustompasswordlockoutpolicyresponse)
+The password lockout policy is not used at the moment
- PUT: /policies/password/lockout
-
-
### ResetPasswordLockoutPolicyToDefault
> **rpc** ResetPasswordLockoutPolicyToDefault([ResetPasswordLockoutPolicyToDefaultRequest](#resetpasswordlockoutpolicytodefaultrequest))
[ResetPasswordLockoutPolicyToDefaultResponse](#resetpasswordlockoutpolicytodefaultresponse)
+The password lockout policy is not used at the moment
- DELETE: /policies/password/lockout
-
-
### GetLabelPolicy
> **rpc** GetLabelPolicy([GetLabelPolicyRequest](#getlabelpolicyrequest))
[GetLabelPolicyResponse](#getlabelpolicyresponse)
+Returns the label policy of the organisation
+With this policy the private labeling can be configured (colors, etc.)
- GET: /policies/label
-
-
### 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
-
-
### 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
-
-
### 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
-
-
### 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
-
-
@@ -1951,3222 +1707,3762 @@ remove a list of user grants in one request
### AddAPIAppRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| name | string | - |
-| auth_method_type | zitadel.app.v1.APIAuthMethodType | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| app_id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
-| client_id | string | - |
-| client_secret | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| app_id | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+| client_id | string | - | |
+| client_secret | string | - | |
+
### AddAppKeyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
-| type | zitadel.authn.v1.KeyType | - |
-| expiration_date | google.protobuf.Timestamp | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
-| key_details | bytes | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+| key_details | bytes | - | |
+
### AddCustomLabelPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| primary_color | string | - |
-| secondary_color | string | - |
-| hide_login_name_suffix | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| primary_color | string | - | string.min_len: 1
string.max_len: 50
|
+| secondary_color | string | - | string.min_len: 1
string.max_len: 50
|
+| hide_login_name_suffix | bool | - | |
+
### AddCustomLabelPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddCustomLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| allow_username_password | bool | - |
-| allow_register | bool | - |
-| allow_external_idp | bool | - |
-| force_mfa | bool | - |
-| passwordless_type | zitadel.policy.v1.PasswordlessType | - |
+
+| 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
|
+
### AddCustomLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddCustomPasswordAgePolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| max_age_days | uint32 | - |
-| expire_warn_days | uint32 | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| max_age_days | uint32 | - | |
+| expire_warn_days | uint32 | - | |
+
### AddCustomPasswordAgePolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddCustomPasswordComplexityPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| min_length | uint64 | - |
-| has_uppercase | bool | - |
-| has_lowercase | bool | - |
-| has_number | bool | - |
-| has_symbol | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| min_length | uint64 | - | |
+| has_uppercase | bool | - | |
+| has_lowercase | bool | - | |
+| has_number | bool | - | |
+| has_symbol | bool | - | |
+
### AddCustomPasswordComplexityPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddCustomPasswordLockoutPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| max_attempts | uint32 | - |
-| show_lockout_failure | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| max_attempts | uint32 | - | |
+| show_lockout_failure | bool | - | |
+
### AddCustomPasswordLockoutPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddHumanUserRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_name | string | - |
-| profile | AddHumanUserRequest.Profile | - |
-| email | AddHumanUserRequest.Email | - |
-| phone | AddHumanUserRequest.Phone | - |
-| initial_password | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| email | string | TODO: check if no value is allowed |
-| is_email_verified | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| email | string | TODO: check if no value is allowed | string.email: true
|
+| is_email_verified | bool | - | |
+
### AddHumanUserRequest.Phone
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| phone | string | has to be a global number |
-| is_phone_verified | bool | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| first_name | string | - |
-| last_name | string | - |
-| nick_name | string | - |
-| display_name | string | - |
-| preferred_language | string | - |
-| gender | zitadel.user.v1.Gender | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddIDPToLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
-| ownerType | zitadel.idp.v1.IDPOwnerType | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddMachineKeyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| type | zitadel.authn.v1.KeyType | - |
-| expiration_date | google.protobuf.Timestamp | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| key_id | string | - |
-| key_details | bytes | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| key_id | string | - | |
+| key_details | bytes | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddMachineUserRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_name | string | - |
-| name | string | - |
-| description | string | - |
+
+| 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
|
+
### AddMachineUserResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddMultiFactorToLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| type | zitadel.policy.v1.MultiFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| type | zitadel.policy.v1.MultiFactorType | - | enum.defined_only: true
enum.not_in: [0]
|
+
### AddMultiFactorToLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddOIDCAppRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| name | string | - |
-| redirect_uris | repeated string | - |
-| response_types | repeated zitadel.app.v1.OIDCResponseType | - |
-| grant_types | repeated zitadel.app.v1.OIDCGrantType | - |
-| app_type | zitadel.app.v1.OIDCAppType | - |
-| auth_method_type | zitadel.app.v1.OIDCAuthMethodType | - |
-| post_logout_redirect_uris | repeated string | - |
-| version | zitadel.app.v1.OIDCVersion | - |
-| dev_mode | bool | - |
-| access_token_type | zitadel.app.v1.OIDCTokenType | - |
-| access_token_role_assertion | bool | - |
-| id_token_role_assertion | bool | - |
-| id_token_userinfo_assertion | bool | - |
-| clock_skew | google.protobuf.Duration | - |
+
+| 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
|
+
### AddOIDCAppResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| app_id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
-| client_id | string | - |
-| client_secret | string | - |
-| none_compliant | bool | - |
-| compliance_problems | repeated zitadel.v1.LocalizedMessage | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| domain | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| domain | string | - | string.min_len: 1
string.max_len: 200
|
+
### AddOrgDomainResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddOrgMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| roles | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+| roles | repeated string | - | |
+
### AddOrgMemberResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddOrgOIDCIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| name | string | - |
-| styling_type | zitadel.idp.v1.IDPStylingType | - |
-| client_id | string | - |
-| client_secret | string | - |
-| issuer | string | - |
-| scopes | repeated string | - |
-| display_name_mapping | zitadel.idp.v1.OIDCMappingField | - |
-| username_mapping | zitadel.idp.v1.OIDCMappingField | - |
+
+| 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
|
+
### AddOrgOIDCIDPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| idp_id | string | - | |
+
### AddOrgRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| name | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| name | string | - | string.min_len: 1
string.max_len: 200
|
+
### AddOrgResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddProjectGrantMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
-| user_id | string | - |
-| roles | repeated string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddProjectGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| granted_org_id | string | - |
-| role_keys | repeated string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| grant_id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| grant_id | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddProjectMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| user_id | string | - |
-| roles | repeated string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddProjectRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| name | string | - |
-| project_role_assertion | bool | - |
-| project_role_check | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| name | string | - | string.min_len: 1
string.max_len: 200
|
+| project_role_assertion | bool | - | |
+| project_role_check | bool | - | |
+
### AddProjectResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddProjectRoleRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| role_key | string | - |
-| display_name | string | - |
-| group | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddSecondFactorToLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| type | zitadel.policy.v1.SecondFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| type | zitadel.policy.v1.SecondFactorType | - | enum.defined_only: true
enum.not_in: [0]
|
+
### AddSecondFactorToLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### AddUserGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| project_id | string | - |
-| project_grant_id | string | - |
-| role_keys | repeated string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| user_grant_id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_grant_id | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### BulkAddProjectRolesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| roles | repeated BulkAddProjectRolesRequest.Role | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| project_id | string | - | string.min_len: 1
string.max_len: 200
|
+| roles | repeated BulkAddProjectRolesRequest.Role | - | |
+
### BulkAddProjectRolesRequest.Role
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| key | string | - |
-| display_name | string | - |
-| group | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### BulkRemoveUserGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| grant_id | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| grant_id | repeated string | - | |
+
### BulkRemoveUserGrantResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### DeactivateAppRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### DeactivateOrgIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### DeactivateOrgIDPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### DeactivateOrgRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### DeactivateOrgResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### DeactivateProjectGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### DeactivateProjectRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### DeactivateProjectResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### DeactivateUserGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### DeactivateUserRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### DeactivateUserResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### GenerateOrgDomainValidationRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| domain | string | - |
-| type | zitadel.org.v1.DomainValidationType | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| token | string | - |
-| url | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| token | string | - | |
+| url | string | - | |
+
### GetAppByIDRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| app | zitadel.app.v1.App | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| app | zitadel.app.v1.App | - | |
+
### GetAppKeyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
-| key_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| key | zitadel.authn.v1.Key | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| key | zitadel.authn.v1.Key | - | |
+
### GetDefaultLabelPolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetDefaultLabelPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.LabelPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.LabelPolicy | - | |
+
### GetDefaultLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### GetDefaultLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.LoginPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.LoginPolicy | - | |
+
### GetDefaultPasswordAgePolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetDefaultPasswordAgePolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordAgePolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordAgePolicy | - | |
+
### GetDefaultPasswordComplexityPolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetDefaultPasswordComplexityPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordComplexityPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordComplexityPolicy | - | |
+
### GetDefaultPasswordLockoutPolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetDefaultPasswordLockoutPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordLockoutPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordLockoutPolicy | - | |
+
### GetFeaturesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### GetFeaturesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| features | zitadel.features.v1.Features | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| features | zitadel.features.v1.Features | - | |
+
### GetGrantedProjectByIDRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| granted_project | zitadel.project.v1.GrantedProject | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| granted_project | zitadel.project.v1.GrantedProject | - | |
+
### GetHumanEmailRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetHumanEmailResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
-| email | zitadel.user.v1.Email | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| email | zitadel.user.v1.Email | - | |
+
### GetHumanPhoneRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetHumanPhoneResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
-| phone | zitadel.user.v1.Phone | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| phone | zitadel.user.v1.Phone | - | |
+
### GetHumanProfileRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetHumanProfileResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
-| profile | zitadel.user.v1.Profile | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| profile | zitadel.user.v1.Profile | - | |
+
### GetIAMRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetIAMResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| global_org_id | string | - |
-| iam_project_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| global_org_id | string | - | |
+| iam_project_id | string | - | |
+
### GetLabelPolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetLabelPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.LabelPolicy | - |
-| is_default | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.LabelPolicy | - | |
+| is_default | bool | - | |
+
### GetLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### GetLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.LoginPolicy | - |
-| is_default | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.LoginPolicy | - | |
+| is_default | bool | - | |
+
### GetMachineKeyByIDsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| key_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| key | zitadel.authn.v1.Key | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| key | zitadel.authn.v1.Key | - | |
+
### GetMyOrgRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetMyOrgResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org | zitadel.org.v1.Org | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| org | zitadel.org.v1.Org | - | |
+
### GetOIDCInformationRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetOIDCInformationResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| issuer | string | - |
-| discovery_endpoint | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| issuer | string | - | |
+| discovery_endpoint | string | - | |
+
### GetOrgByDomainGlobalRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| domain | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| domain | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetOrgByDomainGlobalResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| org | zitadel.org.v1.Org | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| org | zitadel.org.v1.Org | - | |
+
### GetOrgIAMPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### GetOrgIAMPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.OrgIAMPolicy | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.OrgIAMPolicy | - | |
+
### GetOrgIDPByIDRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetOrgIDPByIDResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp | zitadel.idp.v1.IDP | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp | zitadel.idp.v1.IDP | - | |
+
### GetPasswordAgePolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetPasswordAgePolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordAgePolicy | - |
-| is_default | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordAgePolicy | - | |
+| is_default | bool | - | |
+
### GetPasswordComplexityPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### GetPasswordComplexityPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordComplexityPolicy | - |
-| is_default | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordComplexityPolicy | - | |
+| is_default | bool | - | |
+
### GetPasswordLockoutPolicyRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### GetPasswordLockoutPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| policy | zitadel.policy.v1.PasswordLockoutPolicy | - |
-| is_default | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| policy | zitadel.policy.v1.PasswordLockoutPolicy | - | |
+| is_default | bool | - | |
+
### GetProjectByIDRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetProjectByIDResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project | zitadel.project.v1.Project | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| project | zitadel.project.v1.Project | - | |
+
### GetProjectGrantByIDRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| project_grant | zitadel.project.v1.GrantedProject | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| project_grant | zitadel.project.v1.GrantedProject | - | |
+
### GetUserByIDRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetUserByIDResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user | zitadel.user.v1.User | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user | zitadel.user.v1.User | - | |
+
### GetUserByLoginNameGlobalRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| login_name | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| login_name | string | - | string.min_len: 1
string.max_len: 200
|
+
### GetUserByLoginNameGlobalResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user | zitadel.user.v1.User | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user | zitadel.user.v1.User | - | |
+
### GetUserGrantByIDRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| user_grant | zitadel.user.v1.UserGrant | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_grant | zitadel.user.v1.UserGrant | - | |
+
### HealthzRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### HealthzResponse
+This is an empty response
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### IDPQuery
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| [**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 | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| user_name | string | - |
-| profile | ImportHumanUserRequest.Profile | - |
-| email | ImportHumanUserRequest.Email | - |
-| phone | ImportHumanUserRequest.Phone | - |
-| password | string | - |
-| password_change_required | bool | - |
+
+| 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 | - | |
+| password_change_required | bool | - | |
+
### ImportHumanUserRequest.Email
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| email | string | TODO: check if no value is allowed |
-| is_email_verified | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| email | string | TODO: check if no value is allowed | string.email: true
|
+| is_email_verified | bool | - | |
+
### ImportHumanUserRequest.Phone
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| phone | string | has to be a global number |
-| is_phone_verified | bool | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| first_name | string | - |
-| last_name | string | - |
-| nick_name | string | - |
-| display_name | string | - |
-| preferred_language | string | - |
-| gender | zitadel.user.v1.Gender | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### IsUserUniqueRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_name | string | - |
-| email | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_name | string | - | string.pattern: ^[^[:space:]]{1,200}$
|
+| email | string | - | string.min_len: 1
string.max_len: 200
|
+
### IsUserUniqueResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| is_unique | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| is_unique | bool | - | |
+
### ListAppChangesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.change.v1.ChangeQuery | list limitations and ordering |
-| project_id | string | - |
-| app_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.change.v1.Change | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.change.v1.Change | - | |
+
### ListAppKeysRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| app_id | string | - |
-| project_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.authn.v1.Key | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.authn.v1.Key | - | |
+
### ListAppsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.app.v1.AppQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.app.v1.App | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.app.v1.App | - | |
+
### ListGrantedProjectRolesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.project.v1.RoleQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.project.v1.Role | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.project.v1.Role | - | |
+
### ListGrantedProjectsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.project.v1.ProjectQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.project.v1.GrantedProject | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.project.v1.GrantedProject | - | |
+
### ListHumanAuthFactorsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ListHumanAuthFactorsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated zitadel.user.v1.AuthFactor | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated zitadel.user.v1.AuthFactor | - | |
+
### ListHumanLinkedIDPsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.idp.v1.IDPUserLink | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.idp.v1.IDPUserLink | - | |
+
### ListHumanPasswordlessRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ListHumanPasswordlessResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated zitadel.user.v1.WebAuthNToken | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated zitadel.user.v1.WebAuthNToken | - | |
+
### ListLoginPolicyIDPsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| query | zitadel.v1.ListQuery | - | |
+
### ListLoginPolicyIDPsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.idp.v1.IDPLoginPolicyLink | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.idp.v1.IDPLoginPolicyLink | - | |
+
### ListLoginPolicyMultiFactorsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### ListLoginPolicyMultiFactorsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.policy.v1.MultiFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.policy.v1.MultiFactorType | - | |
+
### ListLoginPolicySecondFactorsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### ListLoginPolicySecondFactorsResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.policy.v1.SecondFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.policy.v1.SecondFactorType | - | |
+
### ListMachineKeysRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.authn.v1.Key | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.authn.v1.Key | - | |
+
### ListOrgChangesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.change.v1.ChangeQuery | list limitations and ordering |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| query | zitadel.change.v1.ChangeQuery | list limitations and ordering | |
+
### ListOrgChangesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.change.v1.Change | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.change.v1.Change | - | |
+
### ListOrgDomainsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.org.v1.DomainSearchQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.org.v1.Domain | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.org.v1.Domain | - | |
+
### ListOrgIDPsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| 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 |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| sorting_column | zitadel.idp.v1.IDPFieldName | - |
-| result | repeated zitadel.idp.v1.IDP | - |
+
+| 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
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListOrgMemberRolesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| result | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| result | repeated string | - | |
+
### ListOrgMembersRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.member.v1.SearchQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | list limitations and ordering |
-| result | repeated zitadel.member.v1.Member | criterias the client is looking for |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | list limitations and ordering | |
+| result | repeated zitadel.member.v1.Member | criterias the client is looking for | |
+
### ListProjectChangesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.change.v1.ChangeQuery | list limitations and ordering |
-| project_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.change.v1.Change | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.change.v1.Change | - | |
+
### ListProjectGrantMemberRolesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | - |
-| result | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| query | zitadel.v1.ListQuery | - | |
+| result | repeated string | - | |
+
### ListProjectGrantMemberRolesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated string | - | |
+
### ListProjectGrantMembersRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.member.v1.SearchQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.member.v1.Member | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.member.v1.Member | - | |
+
### ListProjectGrantsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.project.v1.ProjectGrantQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.project.v1.GrantedProject | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.project.v1.GrantedProject | - | |
+
### ListProjectMemberRolesRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ListProjectMemberRolesResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated string | - | |
+
### ListProjectMembersRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.member.v1.SearchQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.member.v1.Member | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.member.v1.Member | - | |
+
### ListProjectRolesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.project.v1.RoleQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.project.v1.Role | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.project.v1.Role | - | |
+
### ListProjectsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.project.v1.ProjectQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.project.v1.Project | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.project.v1.Project | - | |
+
### ListUserChangesRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.change.v1.ChangeQuery | list limitations and ordering |
-| user_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.change.v1.Change | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.change.v1.Change | - | |
+
### ListUserGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| query | zitadel.v1.ListQuery | list limitations and ordering |
-| queries | repeated zitadel.user.v1.UserGrantQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.user.v1.UserGrant | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.user.v1.UserGrant | - | |
+
### ListUserMembershipsRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | list limitations and ordering |
-| query | zitadel.v1.ListQuery | the field the result is sorted |
-| queries | repeated zitadel.user.v1.MembershipQuery | criterias the client is looking for |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| result | repeated zitadel.user.v1.Membership | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| result | repeated zitadel.user.v1.Membership | - | |
+
### ListUsersRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| 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 |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ListDetails | - |
-| sorting_column | zitadel.user.v1.UserFieldName | - |
-| result | repeated zitadel.user.v1.User | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ListDetails | - | |
+| sorting_column | zitadel.user.v1.UserFieldName | - | |
+| result | repeated zitadel.user.v1.User | - | |
+
### LockUserRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### LockUserResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ReactivateAppRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ReactivateOrgIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ReactivateOrgIDPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ReactivateOrgRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ReactivateOrgResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ReactivateProjectGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ReactivateProjectRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ReactivateProjectResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ReactivateUserGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ReactivateUserRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ReactivateUserResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RegenerateAPIClientSecretRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| client_secret | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| client_secret | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RegenerateOIDCClientSecretRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| client_secret | string | - |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| client_secret | string | - | |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveAppKeyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
-| key_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveAppRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveHumanAuthFactorOTPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveHumanAuthFactorOTPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveHumanAuthFactorU2FRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| token_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveHumanLinkedIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| idp_id | string | - |
-| linked_user_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveHumanPasswordlessRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| token_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveHumanPhoneRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveHumanPhoneResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveIDPFromLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveIDPFromLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveMachineKeyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| key_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveMultiFactorFromLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| type | zitadel.policy.v1.MultiFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| type | zitadel.policy.v1.MultiFactorType | - | enum.defined_only: true
enum.not_in: [0]
|
+
### RemoveMultiFactorFromLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveOrgDomainRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| domain | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| domain | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveOrgDomainResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveOrgIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| idp_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveOrgIDPResponse
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### RemoveOrgMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveOrgMemberResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveProjectGrantMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
-| user_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveProjectGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveProjectMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| user_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveProjectRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveProjectResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveProjectRoleRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| role_key | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveSecondFactorFromLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| type | zitadel.policy.v1.SecondFactorType | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| type | zitadel.policy.v1.SecondFactorType | - | enum.defined_only: true
enum.not_in: [0]
|
+
### RemoveSecondFactorFromLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveUserGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| grant_id | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### RemoveUserRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### RemoveUserResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResendHumanEmailVerificationRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ResendHumanEmailVerificationResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResendHumanInitializationRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| email | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+| email | string | - | string.email: true
|
+
### ResendHumanInitializationResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResendHumanPhoneVerificationRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+
### ResendHumanPhoneVerificationResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResetLabelPolicyToDefaultRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ResetLabelPolicyToDefaultResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResetLoginPolicyToDefaultRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
### ResetLoginPolicyToDefaultResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResetPasswordAgePolicyToDefaultRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ResetPasswordAgePolicyToDefaultResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResetPasswordComplexityPolicyToDefaultRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ResetPasswordComplexityPolicyToDefaultResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ResetPasswordLockoutPolicyToDefaultRequest
+This is an empty request
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-
### ResetPasswordLockoutPolicyToDefaultResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### SendHumanResetPasswordNotificationRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| type | SendHumanResetPasswordNotificationRequest.Type | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### SetHumanInitialPasswordRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| password | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### SetPrimaryOrgDomainRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| domain | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| domain | string | - | string.min_len: 1
string.max_len: 200
|
+
### SetPrimaryOrgDomainResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UnlockUserRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| id | string | - | string.min_len: 1
string.max_len: 200
|
+
### UnlockUserResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateAPIAppConfigRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
-| auth_method_type | zitadel.app.v1.APIAuthMethodType | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateAppRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
-| name | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateCustomLabelPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| primary_color | string | - |
-| secondary_color | string | - |
-| hide_login_name_suffix | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| primary_color | string | - | string.min_len: 1
string.max_len: 50
|
+| secondary_color | string | - | string.min_len: 1
string.max_len: 50
|
+| hide_login_name_suffix | bool | - | |
+
### UpdateCustomLabelPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateCustomLoginPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| allow_username_password | bool | - |
-| allow_register | bool | - |
-| allow_external_idp | bool | - |
-| force_mfa | bool | - |
-| passwordless_type | zitadel.policy.v1.PasswordlessType | - |
+
+| 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
|
+
### UpdateCustomLoginPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateCustomPasswordAgePolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| max_age_days | uint32 | - |
-| expire_warn_days | uint32 | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| max_age_days | uint32 | - | |
+| expire_warn_days | uint32 | - | |
+
### UpdateCustomPasswordAgePolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateCustomPasswordComplexityPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| min_length | uint64 | - |
-| has_uppercase | bool | - |
-| has_lowercase | bool | - |
-| has_number | bool | - |
-| has_symbol | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| min_length | uint64 | - | |
+| has_uppercase | bool | - | |
+| has_lowercase | bool | - | |
+| has_number | bool | - | |
+| has_symbol | bool | - | |
+
### UpdateCustomPasswordComplexityPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateCustomPasswordLockoutPolicyRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| max_attempts | uint32 | - |
-| show_lockout_failure | bool | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| max_attempts | uint32 | - | |
+| show_lockout_failure | bool | - | |
+
### UpdateCustomPasswordLockoutPolicyResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateHumanEmailRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| email | string | - |
-| is_email_verified | bool | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateHumanPhoneRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| phone | string | - |
-| is_phone_verified | bool | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateHumanProfileRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| first_name | string | - |
-| last_name | string | - |
-| nick_name | string | - |
-| display_name | string | - |
-| preferred_language | string | - |
-| gender | zitadel.user.v1.Gender | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateMachineRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| description | string | - |
-| name | string | - |
+
+| 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
|
+
### UpdateMachineResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateOIDCAppConfigRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| app_id | string | - |
-| redirect_uris | repeated string | - |
-| response_types | repeated zitadel.app.v1.OIDCResponseType | - |
-| grant_types | repeated zitadel.app.v1.OIDCGrantType | - |
-| app_type | zitadel.app.v1.OIDCAppType | - |
-| auth_method_type | zitadel.app.v1.OIDCAuthMethodType | - |
-| post_logout_redirect_uris | repeated string | - |
-| dev_mode | bool | - |
-| access_token_type | zitadel.app.v1.OIDCTokenType | - |
-| access_token_role_assertion | bool | - |
-| id_token_role_assertion | bool | - |
-| id_token_userinfo_assertion | bool | - |
-| clock_skew | google.protobuf.Duration | - |
+
+| 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
|
+
### UpdateOIDCAppConfigResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateOrgIDPOIDCConfigRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
-| client_id | string | - |
-| client_secret | string | - |
-| issuer | string | - |
-| scopes | repeated string | - |
-| display_name_mapping | zitadel.idp.v1.OIDCMappingField | - |
-| username_mapping | zitadel.idp.v1.OIDCMappingField | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateOrgIDPRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| idp_id | string | - |
-| name | string | - |
-| styling_type | zitadel.idp.v1.IDPStylingType | - |
+
+| 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
|
+
### UpdateOrgIDPResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateOrgMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| roles | repeated string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| user_id | string | - | string.min_len: 1
string.max_len: 200
|
+| roles | repeated string | - | |
+
### UpdateOrgMemberResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateProjectGrantMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
-| user_id | string | - |
-| roles | repeated string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateProjectGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| grant_id | string | - |
-| role_keys | repeated string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateProjectMemberRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| user_id | string | - |
-| roles | repeated string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateProjectRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| id | string | - |
-| name | string | - |
-| project_role_assertion | bool | - |
-| project_role_check | bool | - |
+
+| 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 | - | |
+
### UpdateProjectResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateProjectRoleRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| project_id | string | - |
-| role_key | string | - |
-| display_name | string | - |
-| group | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateUserGrantRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| grant_id | string | - |
-| role_keys | repeated string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### UpdateUserNameRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| user_id | string | - |
-| user_name | string | - |
+
+| 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 |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
### ValidateOrgDomainRequest
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| domain | string | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| domain | string | - | string.min_len: 1
string.max_len: 200
|
+
### ValidateOrgDomainResponse
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| details | zitadel.v1.ObjectDetails | - |
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+
diff --git a/docs/docs/apis/proto/member.md b/docs/docs/apis/proto/member.md
index b0bc9560d..2fa36d34d 100644
--- a/docs/docs/apis/proto/member.md
+++ b/docs/docs/apis/proto/member.md
@@ -6,5 +6,87 @@ title: zitadel/member.proto
+## 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 | - | |
+
+
+
+
+### 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
index f39f79419..98909286e 100644
--- a/docs/docs/apis/proto/message.md
+++ b/docs/docs/apis/proto/message.md
@@ -6,5 +6,32 @@ title: zitadel/message.proto
+## 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/object.md b/docs/docs/apis/proto/object.md
index 949b94777..a99399b47 100644
--- a/docs/docs/apis/proto/object.md
+++ b/docs/docs/apis/proto/object.md
@@ -6,6 +6,61 @@ title: zitadel/object.proto
+## 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
diff --git a/docs/docs/apis/proto/options.md b/docs/docs/apis/proto/options.md
index 0e591e5f2..c175a172b 100644
--- a/docs/docs/apis/proto/options.md
+++ b/docs/docs/apis/proto/options.md
@@ -6,5 +6,21 @@ title: zitadel/options.proto
+## Messages
+
+
+### AuthOption
+
+
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| permission | string | - | |
+| check_field_name | string | - | |
+| feature | string | - | |
+
+
+
+
diff --git a/docs/docs/apis/proto/org.md b/docs/docs/apis/proto/org.md
index 4b2ca6d15..7152a114e 100644
--- a/docs/docs/apis/proto/org.md
+++ b/docs/docs/apis/proto/org.md
@@ -6,6 +6,99 @@ title: zitadel/org.proto
+## 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 | - | |
+
+
+
+
## Enums
diff --git a/docs/docs/apis/proto/policy.md b/docs/docs/apis/proto/policy.md
index 532064ff9..d286e9df8 100644
--- a/docs/docs/apis/proto/policy.md
+++ b/docs/docs/apis/proto/policy.md
@@ -6,6 +6,99 @@ title: zitadel/policy.proto
+## Messages
+
+
+### LabelPolicy
+
+
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| primary_color | string | - | |
+| secondary_color | string | - | |
+| is_default | bool | - | |
+| hide_login_name_suffix | 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 | - | |
+
+
+
+
+### OrgIAMPolicy
+
+
+
+| 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 | - | |
+
+
+
+
+### PasswordLockoutPolicy
+
+
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| details | zitadel.v1.ObjectDetails | - | |
+| max_attempts | uint64 | - | |
+| show_lockout_failure | bool | - | |
+| is_default | bool | - | |
+
+
+
+
## Enums
diff --git a/docs/docs/apis/proto/project.md b/docs/docs/apis/proto/project.md
index 8f1527001..ce7ed9c2c 100644
--- a/docs/docs/apis/proto/project.md
+++ b/docs/docs/apis/proto/project.md
@@ -6,6 +6,154 @@ title: zitadel/project.proto
+## Messages
+
+
+### 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
|
+
+
+
+
+### 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 | |
+
+
+
+
+### 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 | - | |
+
+
+
+
+### 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 | - | |
+
+
+
+
+### 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
diff --git a/docs/docs/apis/proto/user.md b/docs/docs/apis/proto/user.md
index 4cdfe0775..2b8ce80a5 100644
--- a/docs/docs/apis/proto/user.md
+++ b/docs/docs/apis/proto/user.md
@@ -6,6 +6,566 @@ title: zitadel/user.proto
+## 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
|
+
+
+
+
+### Machine
+
+
+
+| Field | Type | Description | Validation |
+| ----- | ---- | ----------- | ----------- |
+| name | string | - | |
+| description | string | - | |
+
+
+
+
+### 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
|
+
+
+
+
+### 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 | - | |
+
+
+
+
+### 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 | - | |
+
+
+
+
+### 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 | - | |
+
+
+
+
+### 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 | - | |
+
+
+
+
+### 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 | - | |
+
+
+
+
+### 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
|
+
+
+
+
+### 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
diff --git a/docs/docs/guides/serviceusers.md b/docs/docs/guides/serviceusers.md
index b3d9ab196..624679012 100644
--- a/docs/docs/guides/serviceusers.md
+++ b/docs/docs/guides/serviceusers.md
@@ -124,12 +124,12 @@ With the encoded JWT from the prior step, you will need to craft a POST request
curl --request POST \
--url https://api.zitadel.ch/oauth/v2/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
- --data grant_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer \
+ --data grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer \
--data scope='openid profile email' \
--data assertion=eyJ0eXAiOiJKV1QiL...
```
-* `grant_type` should be set to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`
+* `grant_type` should be set to `urn:ietf:params:oauth:grant-type:jwt-bearer`
* `scope` should contain any [Scopes](../apis/openidoauth/scopes) you want to include, but must include `openid`. For this example, please include `profile` and `email`
* `assertion` is the encoded value of the JWT that was signed with your private key from the prior step
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index de8781772..8ceddb1b1 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -13,7 +13,8 @@ module.exports = {
title: 'ZITADEL',
logo: {
alt: 'ZITADEL logo',
- src: 'img/zitadel-logo-solo-darkdesign.svg',
+ src: 'img/zitadel-logo-solo-light.png',
+ srcDark: 'img/zitadel-logo-solo-darkdesign.svg',
},
items: [
{
diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css
index af814556e..9ff28f325 100644
--- a/docs/src/css/custom.css
+++ b/docs/src/css/custom.css
@@ -6,7 +6,7 @@
*/
/* You can override the default Infima variables here. */
-@import url('https://fonts.googleapis.com/css2?family=Montserrat');
+@import url('https://fonts.googleapis.com/css2?family=Lato');
:root {
--ifm-color-primary: #556cd1;
@@ -17,9 +17,19 @@
--ifm-color-primary-lighter: #788ada;
--ifm-color-primary-lightest: #9aa8e4;
--ifm-code-font-size: 95%;
- --ifm-font-family-base: 'Montserrat', sans-serif;
+ --ifm-font-family-base: 'Lato', sans-serif;
+ --ifm-hero-background-color: var(--ifm-color-primary);
+ --ifm-hero-text-color: var(--ifm-font-color-base-inverse);
+ --get-started: #FF2069;
+ --get-started-bg-hover: var(--ifm-hero-background-color);
}
+:root[data-theme="dark"] {
+ --ifm-background-color: #141735;
+ --ifm-hero-background-color: #0F1022;
+ --ifm-hero-text-color: var(--ifm-font-color-base);
+ --get-started-bg: --ifm-font-color-base;
+}
.docusaurus-highlight-code-line {
background-color: rgb(72, 77, 91);
@@ -29,14 +39,14 @@
}
.get-started {
- border: 1px solid;
- background-color: var(--ifm-font-color-base-inverse);
- color: var(--ifm-color-primary);
+ border: 2px solid var(--get-started);
+ background-color: var(--get-started);
+ color: var(--ifm-hero-text-color);
}
.get-started:hover {
- background-color: var(--ifm-color-primary);
- color: var(--ifm-font-color-base-inverse);
+ background-color: var(--get-started-bg-hover);
+ color: var(--ifm-hero-text-color);
}
.docs-link a {
@@ -46,4 +56,8 @@
.docs-link a:hover {
color: var(--ifm-color-primary);
+}
+
+.docs-link img {
+ margin: 40px;
}
\ No newline at end of file
diff --git a/docs/src/pages/index.js b/docs/src/pages/index.js
index 7e03b5a19..d30458782 100644
--- a/docs/src/pages/index.js
+++ b/docs/src/pages/index.js
@@ -5,11 +5,13 @@ import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import useBaseUrl from '@docusaurus/useBaseUrl';
import styles from './styles.module.css';
+import ThemedImage from '@theme/ThemedImage';
const features = [
{
title: 'Manuals',
- imageUrl: 'img/zitadel-logo-solo-light.png',
+ darkImageUrl: 'img/index/Manual-dark.svg',
+ lightImageUrl: 'img/index/Manual-light.svg',
link: 'docs/manuals/introduction',
description: (
<>
@@ -19,7 +21,8 @@ const features = [
},
{
title: 'Quickstarts',
- imageUrl: 'img/zitadel-logo-solo-light.png',
+ darkImageUrl: 'img/index/Quickstarts-dark.svg',
+ lightImageUrl: 'img/index/Quickstarts-light.svg',
link: 'docs/quickstarts/introduction',
description: (
<>
@@ -29,7 +32,8 @@ const features = [
},
{
title: 'Guides',
- imageUrl: 'img/zitadel-logo-solo-light.png',
+ darkImageUrl: 'img/index/Guides-dark.svg',
+ lightImageUrl: 'img/index/Guides-light.svg',
link: 'docs/guides/introduction',
description: (
<>
@@ -39,7 +43,8 @@ const features = [
},
{
title: 'APIs',
- imageUrl: 'img/zitadel-logo-solo-light.png',
+ darkImageUrl: 'img/index/APIs-dark.svg',
+ lightImageUrl: 'img/index/APIs-light.svg',
link: '/docs/apis/introduction',
description: (
<>
@@ -49,7 +54,8 @@ const features = [
},
{
title: 'Concepts',
- imageUrl: 'img/zitadel-logo-solo-light.png',
+ darkImageUrl: 'img/index/Concepts-dark.svg',
+ lightImageUrl: 'img/index/Concepts-light.svg',
link: 'docs/concepts/introduction',
description: (
<>
@@ -59,18 +65,26 @@ const features = [
},
];
-function Feature({imageUrl, title, description, link}) {
- const imgUrl = useBaseUrl(imageUrl);
+function Feature({darkImageUrl, lightImageUrl, title, description, link}) {
+ const darkImgUrl = useBaseUrl(darkImageUrl);
+ const lightImgUrl = useBaseUrl(lightImageUrl);
return (
{description}
+{description}
{siteConfig.tagline}
diff --git a/docs/static/img/index/APIs-dark.svg b/docs/static/img/index/APIs-dark.svg new file mode 100644 index 000000000..86a804023 --- /dev/null +++ b/docs/static/img/index/APIs-dark.svg @@ -0,0 +1,138 @@ + + + diff --git a/docs/static/img/index/APIs-light.svg b/docs/static/img/index/APIs-light.svg new file mode 100644 index 000000000..8f2011340 --- /dev/null +++ b/docs/static/img/index/APIs-light.svg @@ -0,0 +1,91 @@ + + + diff --git a/docs/static/img/index/Concepts-dark.svg b/docs/static/img/index/Concepts-dark.svg new file mode 100644 index 000000000..662c3796b --- /dev/null +++ b/docs/static/img/index/Concepts-dark.svg @@ -0,0 +1,86 @@ + + + diff --git a/docs/static/img/index/Concepts-light.svg b/docs/static/img/index/Concepts-light.svg new file mode 100644 index 000000000..b2ca5f5db --- /dev/null +++ b/docs/static/img/index/Concepts-light.svg @@ -0,0 +1,39 @@ + + + diff --git a/docs/static/img/index/Guides-dark.svg b/docs/static/img/index/Guides-dark.svg new file mode 100644 index 000000000..04fc5d164 --- /dev/null +++ b/docs/static/img/index/Guides-dark.svg @@ -0,0 +1,96 @@ + + + diff --git a/docs/static/img/index/Guides-light.svg b/docs/static/img/index/Guides-light.svg new file mode 100644 index 000000000..2a72a327e --- /dev/null +++ b/docs/static/img/index/Guides-light.svg @@ -0,0 +1,49 @@ + + + diff --git a/docs/static/img/index/Manual-dark.svg b/docs/static/img/index/Manual-dark.svg new file mode 100644 index 000000000..878447f33 --- /dev/null +++ b/docs/static/img/index/Manual-dark.svg @@ -0,0 +1,95 @@ + + + diff --git a/docs/static/img/index/Manual-light.svg b/docs/static/img/index/Manual-light.svg new file mode 100644 index 000000000..4e00bda6b --- /dev/null +++ b/docs/static/img/index/Manual-light.svg @@ -0,0 +1,48 @@ + + + diff --git a/docs/static/img/index/Quickstarts-dark.svg b/docs/static/img/index/Quickstarts-dark.svg new file mode 100644 index 000000000..24649e141 --- /dev/null +++ b/docs/static/img/index/Quickstarts-dark.svg @@ -0,0 +1,83 @@ + + + diff --git a/docs/static/img/index/Quickstarts-light.svg b/docs/static/img/index/Quickstarts-light.svg new file mode 100644 index 000000000..a12fe8990 --- /dev/null +++ b/docs/static/img/index/Quickstarts-light.svg @@ -0,0 +1,36 @@ + + + diff --git a/internal/eventstore/asset.go b/internal/eventstore/asset.go new file mode 100644 index 000000000..2b8bde772 --- /dev/null +++ b/internal/eventstore/asset.go @@ -0,0 +1,37 @@ +package eventstore + +type Asset struct { + // ID is to refer to the asset + ID string + //Asset is the actual image + Asset []byte + //Action defines if asset should be added or removed + Action AssetAction +} + +type AssetAction int32 + +const ( + AssetAdd AssetAction = iota + AssetRemove + + assetActionCount +) + +func NewAddAsset( + id string, + asset []byte) *Asset { + return &Asset{ + ID: id, + Asset: asset, + Action: AssetAdd, + } +} + +func NewRemoveAsset( + id string) *Asset { + return &Asset{ + ID: id, + Action: AssetRemove, + } +} diff --git a/internal/repository/policy/label.go b/internal/repository/policy/label.go index 693a55192..b53009724 100644 --- a/internal/repository/policy/label.go +++ b/internal/repository/policy/label.go @@ -19,6 +19,7 @@ type LabelPolicyAddedEvent struct { PrimaryColor string `json:"primaryColor,omitempty"` SecondaryColor string `json:"secondaryColor,omitempty"` HideLoginNameSuffix bool `json:"hideLoginNameSuffix,omitempty"` + LogoDarkThemeID string } func (e *LabelPolicyAddedEvent) Data() interface{} { diff --git a/proto/zitadel/admin.proto b/proto/zitadel/admin.proto index 2cc8e9b0e..b942d3af5 100644 --- a/proto/zitadel/admin.proto +++ b/proto/zitadel/admin.proto @@ -173,6 +173,7 @@ service AdminService { }; } + // Returns an organisation by id rpc GetOrgByID(GetOrgByIDRequest) returns (GetOrgByIDResponse) { option (google.api.http) = { get: "/orgs/{id}"; @@ -199,7 +200,7 @@ service AdminService { } //Returns all organisations matching the request - // all queries need to match (ANDed) + // all queries need to match (AND) rpc ListOrgs(ListOrgsRequest) returns (ListOrgsResponse) { option (google.api.http) = { post: "/orgs/_search"; @@ -276,6 +277,7 @@ service AdminService { }; } + // Returns a identity provider configuration of the IAM rpc GetIDPByID(GetIDPByIDRequest) returns (GetIDPByIDResponse) { option (google.api.http) = { get: "/idps/{id}"; @@ -311,6 +313,7 @@ service AdminService { }; } + // Returns all identity provider configurations of the IAM rpc ListIDPs(ListIDPsRequest) returns (ListIDPsResponse) { option (google.api.http) = { post: "/idps/_search"; @@ -347,6 +350,7 @@ service AdminService { }; } + // Adds a new oidc identity provider configuration the IAM rpc AddOIDCIDP(AddOIDCIDPRequest) returns (AddOIDCIDPResponse) { option (google.api.http) = { post: "/idps/oidc"; @@ -1676,8 +1680,11 @@ service AdminService { } } + +//This is an empty request message HealthzRequest {} +//This is an empty response message HealthzResponse {} // if name or domain is already in use, org is not unique @@ -2338,6 +2345,7 @@ message ResetCustomOrgIAMPolicyToDefaultResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetLabelPolicyRequest {} message GetLabelPolicyResponse { @@ -2380,6 +2388,7 @@ message UpdateLabelPolicyResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetLoginPolicyRequest {} message GetLoginPolicyResponse { @@ -2470,6 +2479,7 @@ message RemoveIDPFromLoginPolicyResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ListLoginPolicySecondFactorsRequest {} message ListLoginPolicySecondFactorsResponse { @@ -2505,6 +2515,7 @@ message RemoveSecondFactorFromLoginPolicyResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ListLoginPolicyMultiFactorsRequest {} message ListLoginPolicyMultiFactorsResponse { @@ -2578,6 +2589,7 @@ message UpdatePasswordComplexityPolicyResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetPasswordAgePolicyRequest {} message GetPasswordAgePolicyResponse { @@ -2603,6 +2615,7 @@ message UpdatePasswordAgePolicyResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetPasswordLockoutPolicyRequest {} message GetPasswordLockoutPolicyResponse { @@ -2692,6 +2705,7 @@ message RemoveIAMMemberResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ListIAMMemberRolesRequest {} message ListIAMMemberRolesResponse { @@ -2711,6 +2725,7 @@ message ListIAMMembersResponse { repeated zitadel.member.v1.Member result = 2; } +//This is an empty request message ListViewsRequest {} message ListViewsResponse { @@ -2743,8 +2758,10 @@ message ClearViewRequest { ]; } +//This is an empty response message ClearViewResponse {} +//This is an empty request message ListFailedEventsRequest {} message ListFailedEventsResponse { @@ -2782,6 +2799,7 @@ message RemoveFailedEventRequest { ]; } +//This is an empty response message RemoveFailedEventResponse {} message View { diff --git a/proto/zitadel/auth.proto b/proto/zitadel/auth.proto index 1c63902d8..749d07b9c 100644 --- a/proto/zitadel/auth.proto +++ b/proto/zitadel/auth.proto @@ -48,7 +48,8 @@ service AuthService { get: "/healthz" }; } - + + // Returns my full blown user rpc GetMyUser(GetMyUserRequest) returns (GetMyUserResponse) { option (google.api.http) = { get: "/users/me" @@ -59,6 +60,7 @@ service AuthService { }; } + // Returns the history of the authorized user (each event) rpc ListMyUserChanges(ListMyUserChangesRequest) returns (ListMyUserChangesResponse) { option (google.api.http) = { post: "/users/me/changes/_search" @@ -69,6 +71,7 @@ service AuthService { }; } + // Returns the user sessions of the authorized user of the current useragent rpc ListMyUserSessions(ListMyUserSessionsRequest) returns (ListMyUserSessionsResponse) { option (google.api.http) = { post: "/users/me/sessions/_search" @@ -79,6 +82,7 @@ service AuthService { }; } + // Change the user name of the authorize user rpc UpdateMyUserName(UpdateMyUserNameRequest) returns (UpdateMyUserNameResponse) { option (google.api.http) = { put: "/users/me/username" @@ -90,6 +94,8 @@ service AuthService { }; } + // Returns the password complexity policy of my organisation + // This policy defines how the password should look rpc GetMyPasswordComplexityPolicy(GetMyPasswordComplexityPolicyRequest) returns (GetMyPasswordComplexityPolicyResponse) { option (google.api.http) = { get: "/policies/passwords/complexity" @@ -100,6 +106,7 @@ service AuthService { }; } + // Change the password of the authorized user rpc UpdateMyPassword(UpdateMyPasswordRequest) returns (UpdateMyPasswordResponse) { option (google.api.http) = { put: "/users/me/password" @@ -111,6 +118,7 @@ service AuthService { }; } + // Returns the profile information of the authorized user rpc GetMyProfile(GetMyProfileRequest) returns (GetMyProfileResponse) { option (google.api.http) = { get: "/users/me/profile" @@ -121,6 +129,7 @@ service AuthService { }; } + // Changes the profile information of the authorized user rpc UpdateMyProfile(UpdateMyProfileRequest) returns (UpdateMyProfileResponse) { option (google.api.http) = { put: "/users/me/profile" @@ -132,6 +141,7 @@ service AuthService { }; } + // Returns the email address of the authorized user rpc GetMyEmail(GetMyEmailRequest) returns (GetMyEmailResponse) { option (google.api.http) = { get: "/users/me/email" @@ -142,6 +152,8 @@ service AuthService { }; } + // Changes the email address of the authorized user + // An email is sent to the given address, to verify it rpc SetMyEmail(SetMyEmailRequest) returns (SetMyEmailResponse) { option (google.api.http) = { put: "/users/me/email" @@ -153,6 +165,7 @@ service AuthService { }; } + // Sets the email address to verified rpc VerifyMyEmail(VerifyMyEmailRequest) returns (VerifyMyEmailResponse) { option (google.api.http) = { post: "/users/me/email/_verify" @@ -164,6 +177,7 @@ service AuthService { }; } + // Sends a new email to the last given address to verify it rpc ResendMyEmailVerification(ResendMyEmailVerificationRequest) returns (ResendMyEmailVerificationResponse) { option (google.api.http) = { post: "/users/me/email/_resend_verification" @@ -175,6 +189,7 @@ service AuthService { }; } + // Returns the phone number of the authorized user rpc GetMyPhone(GetMyPhoneRequest) returns (GetMyPhoneResponse) { option (google.api.http) = { get: "/users/me/phone" @@ -185,6 +200,8 @@ service AuthService { }; } + // Sets the phone number of the authorized user + // An sms is sent to the number with a verification code rpc SetMyPhone(SetMyPhoneRequest) returns (SetMyPhoneResponse) { option (google.api.http) = { put: "/users/me/phone" @@ -196,6 +213,7 @@ service AuthService { }; } + // Sets the phone number to verified rpc VerifyMyPhone(VerifyMyPhoneRequest) returns (VerifyMyPhoneResponse) { option (google.api.http) = { post: "/users/me/phone/_verify" @@ -207,6 +225,7 @@ service AuthService { }; } + // Resends a sms to the last given phone number, to verify it rpc ResendMyPhoneVerification(ResendMyPhoneVerificationRequest) returns (ResendMyPhoneVerificationResponse) { option (google.api.http) = { post: "/users/me/phone/_resend_verification" @@ -218,6 +237,7 @@ service AuthService { }; } + // Removed the phone number of the authorized user rpc RemoveMyPhone(RemoveMyPhoneRequest) returns (RemoveMyPhoneResponse) { option (google.api.http) = { delete: "/users/me/phone" @@ -228,6 +248,7 @@ service AuthService { }; } + // Returns a list of all linked identity providers (social logins, eg. Google, Microsoft, AD, etc.) rpc ListMyLinkedIDPs(ListMyLinkedIDPsRequest) returns (ListMyLinkedIDPsResponse) { option (google.api.http) = { post: "/users/me/idps/_search" @@ -239,6 +260,7 @@ service AuthService { }; } + // Removes a linked identity provider (social logins, eg. Google, Microsoft, AD, etc.) rpc RemoveMyLinkedIDP(RemoveMyLinkedIDPRequest) returns (RemoveMyLinkedIDPResponse) { option (google.api.http) = { delete: "/users/me/idps/{idp_id}/{linked_user_id}" @@ -249,6 +271,7 @@ service AuthService { }; } + // Returns all configured authentication factors (second and multi) rpc ListMyAuthFactors(ListMyAuthFactorsRequest) returns (ListMyAuthFactorsResponse) { option (google.api.http) = { post: "/users/me/auth_factors/_search" @@ -259,6 +282,8 @@ service AuthService { }; } + // Adds a new OTP (One Time Password) Second Factor to the authorized user + // Only one OTP can be configured per user rpc AddMyAuthFactorOTP(AddMyAuthFactorOTPRequest) returns (AddMyAuthFactorOTPResponse) { option (google.api.http) = { post: "/users/me/auth_factors/otp" @@ -269,6 +294,7 @@ service AuthService { }; } + // Verify the last added OTP (One Time Password) rpc VerifyMyAuthFactorOTP(VerifyMyAuthFactorOTPRequest) returns (VerifyMyAuthFactorOTPResponse) { option (google.api.http) = { post: "/users/me/auth_factors/otp/_verify" @@ -280,6 +306,7 @@ service AuthService { }; } + // Removed the configured OTP (One Time Password) Factor rpc RemoveMyAuthFactorOTP(RemoveMyAuthFactorOTPRequest) returns (RemoveMyAuthFactorOTPResponse) { option (google.api.http) = { delete: "/users/me/auth_factors/otp" @@ -290,6 +317,8 @@ service AuthService { }; } + // Adds a new U2F (Universal Second Factor) to the authorized user + // Multiple U2Fs can be configured rpc AddMyAuthFactorU2F(AddMyAuthFactorU2FRequest) returns (AddMyAuthFactorU2FResponse) { option (google.api.http) = { post: "/users/me/auth_factors/u2f" @@ -300,6 +329,7 @@ service AuthService { }; } + // Verifies the last added U2F (Universal Second Factor) of the authorized user rpc VerifyMyAuthFactorU2F(VerifyMyAuthFactorU2FRequest) returns (VerifyMyAuthFactorU2FResponse) { option (google.api.http) = { post: "/users/me/auth_factors/u2f/_verify" @@ -311,6 +341,7 @@ service AuthService { }; } + // Removes the U2F Authentication from the authorized user rpc RemoveMyAuthFactorU2F(RemoveMyAuthFactorU2FRequest) returns (RemoveMyAuthFactorU2FResponse) { option (google.api.http) = { delete: "/users/me/auth_factors/u2f/{token_id}" @@ -321,6 +352,7 @@ service AuthService { }; } + // Returns all configured passwordless authentications of the authorized user rpc ListMyPasswordless(ListMyPasswordlessRequest) returns (ListMyPasswordlessResponse) { option (google.api.http) = { post: "/users/me/passwordless/_search" @@ -330,6 +362,8 @@ service AuthService { }; } + // Adds a new passwordless authentications to the authorized user + // Multiple passwordless authentications can be configured rpc AddMyPasswordless(AddMyPasswordlessRequest) returns (AddMyPasswordlessResponse) { option (google.api.http) = { post: "/users/me/passwordless" @@ -340,6 +374,7 @@ service AuthService { }; } + // Verifies the last added passwordless configuration rpc VerifyMyPasswordless(VerifyMyPasswordlessRequest) returns (VerifyMyPasswordlessResponse) { option (google.api.http) = { post: "/users/me/passwordless/_verify" @@ -351,6 +386,7 @@ service AuthService { }; } + // Removes the passwordless configuration from the authorized user rpc RemoveMyPasswordless(RemoveMyPasswordlessRequest) returns (RemoveMyPasswordlessResponse) { option (google.api.http) = { delete: "/users/me/passwordless/{token_id}" @@ -361,6 +397,7 @@ service AuthService { }; } + // Returns all user grants (authorizations) of the authorized user rpc ListMyUserGrants(ListMyUserGrantsRequest) returns (ListMyUserGrantsResponse) { option (google.api.http) = { post: "/usergrants/me/_search" @@ -371,6 +408,7 @@ service AuthService { }; } + // Returns a list of organisations where the authorized user has a user grant (authorization) in the context of the requested project rpc ListMyProjectOrgs(ListMyProjectOrgsRequest) returns (ListMyProjectOrgsResponse) { option (google.api.http) = { post: "/global/projectorgs/_search" @@ -382,6 +420,7 @@ service AuthService { }; } + // Returns a list of features, which are allowed on these organisation based on the subscription of the organisation rpc ListMyZitadelFeatures(ListMyZitadelFeaturesRequest) returns (ListMyZitadelFeaturesResponse) { option (google.api.http) = { post: "/features/zitadel/me/_search" @@ -392,6 +431,7 @@ service AuthService { }; } + // Returns the permissions the authorized user has in ZITADEL based on his manager roles (e.g ORG_OWNER) rpc ListMyZitadelPermissions(ListMyZitadelPermissionsRequest) returns (ListMyZitadelPermissionsResponse) { option (google.api.http) = { post: "/permissions/zitadel/me/_search" @@ -402,6 +442,7 @@ service AuthService { }; } + // Returns a list of roles for the authorized user and project rpc ListMyProjectPermissions(ListMyProjectPermissionsRequest) returns (ListMyProjectPermissionsResponse) { option (google.api.http) = { post: "/permissions/me/_search" @@ -413,11 +454,13 @@ service AuthService { } } +//This is an empty request message HealthzRequest {} +//This is an empty response message HealthzResponse {} -//GetMyUserRequest is an empty request +//This is an empty request // the request parameters are read from the token-header message GetMyUserRequest {} @@ -439,6 +482,7 @@ message ListMyUserChangesResponse { repeated zitadel.change.v1.Change result = 2; } +//This is an empty request message ListMyUserSessionsRequest {} message ListMyUserSessionsResponse { @@ -453,6 +497,7 @@ message UpdateMyUserNameResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetMyPasswordComplexityPolicyRequest {} message GetMyPasswordComplexityPolicyResponse { @@ -468,6 +513,7 @@ message UpdateMyPasswordResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetMyProfileRequest {} message GetMyProfileResponse { @@ -488,6 +534,7 @@ message UpdateMyProfileResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetMyEmailRequest {} message GetMyEmailResponse { @@ -511,12 +558,14 @@ message VerifyMyEmailResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ResendMyEmailVerificationRequest {} message ResendMyEmailVerificationResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetMyPhoneRequest {} message GetMyPhoneResponse { @@ -540,12 +589,14 @@ message VerifyMyPhoneResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ResendMyPhoneVerificationRequest {} message ResendMyPhoneVerificationResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message RemoveMyPhoneRequest {} message RemoveMyPhoneResponse { @@ -555,6 +606,7 @@ message RemoveMyPhoneResponse { message ListMyLinkedIDPsRequest { //list limitations and ordering zitadel.v1.ListQuery query = 1; + //PLANNED: queries for idp name and login name } @@ -572,12 +624,14 @@ message RemoveMyLinkedIDPResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ListMyAuthFactorsRequest {} message ListMyAuthFactorsResponse { repeated zitadel.user.v1.AuthFactor result = 1; } +//This is an empty request message AddMyAuthFactorU2FRequest {} message AddMyAuthFactorU2FResponse { @@ -585,6 +639,7 @@ message AddMyAuthFactorU2FResponse { zitadel.v1.ObjectDetails details = 2; } +//This is an empty request message AddMyAuthFactorOTPRequest {} message AddMyAuthFactorOTPResponse { @@ -609,6 +664,7 @@ message VerifyMyAuthFactorU2FResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message RemoveMyAuthFactorOTPRequest {} message RemoveMyAuthFactorOTPResponse { @@ -623,12 +679,14 @@ message RemoveMyAuthFactorU2FResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ListMyPasswordlessRequest {} message ListMyPasswordlessResponse { repeated zitadel.user.v1.WebAuthNToken result = 1; } +//This is an empty request message AddMyPasswordlessRequest {} message AddMyPasswordlessResponse { @@ -683,18 +741,21 @@ message ListMyProjectOrgsResponse { repeated zitadel.org.v1.Org result = 2; } +//This is an empty request message ListMyZitadelFeaturesRequest {} message ListMyZitadelFeaturesResponse { repeated string result = 1; } +//This is an empty request message ListMyZitadelPermissionsRequest {} message ListMyZitadelPermissionsResponse { repeated string result = 1; } +//This is an empty request message ListMyProjectPermissionsRequest {} message ListMyProjectPermissionsResponse { diff --git a/proto/zitadel/docs/zitadel-md.tmpl b/proto/zitadel/docs/zitadel-md.tmpl index fefb1eff8..f9e47175c 100644 --- a/proto/zitadel/docs/zitadel-md.tmpl +++ b/proto/zitadel/docs/zitadel-md.tmpl @@ -16,7 +16,7 @@ title: {{.Name}} {{ .Description}} -{{$httpOption := .Option "google.api.http"}} +{{$httpOption := .Option "validate.rules"}} {{range $httpOption.Rules}} {{ .Method }}: {{ .Pattern }} {{end}} @@ -25,17 +25,19 @@ title: {{.Name}} {{end}} {{end}} -{{if .HasServices}} +{{if .HasMessages}} ## Messages {{range .Messages}} ### {{.LongName}} {{.Description}} -| Field | Type | Description | -| ----- | ---- | ----------- | +{{if .HasFields}} +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | {{range .Fields -}} -| {{if .IsOneof}}[**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) {{.OneofDecl}}.{{end}}{{.Name}} | {{if .IsMap}}map {{else}}{{.Label}} {{end}}{{.LongType}} | {{if .Description}}{{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}}{{else}}-{{end}} | +| {{if .IsOneof}}[**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) {{.OneofDecl}}.{{end}}{{.Name}} | {{if .IsMap}}map {{else}}{{.Label}} {{end}}{{.LongType}} | {{if .Description}}{{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}}{{else}}-{{end}} | {{$validateOption := .Option "validate.rules"}}{{range $validateOption.Rules}}{{ .Name }}: {{ .Value }}