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 (
- {imgUrl && ( + {darkImgUrl && lightImgUrl && (
- {title} +
)} -

{title}

-

{description}

+

{title}

+

{description}

); @@ -83,7 +97,7 @@ export default function Home() { -
+

{siteConfig.title}

{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 }}
{{end}} | +{{end}} {{end}} {{end}} {{end}} diff --git a/proto/zitadel/management.proto b/proto/zitadel/management.proto index bed448bff..70d6112bd 100644 --- a/proto/zitadel/management.proto +++ b/proto/zitadel/management.proto @@ -72,7 +72,7 @@ service ManagementService { }; } - // 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) rpc GetIAM(GetIAMRequest) returns (GetIAMResponse) { option (google.api.http) = { get: "/iam" @@ -83,6 +83,7 @@ service ManagementService { }; } + // Returns the requested full blown user (human or machine) rpc GetUserByID(GetUserByIDRequest) returns (GetUserByIDResponse) { option (google.api.http) = { get: "/users/{id}" @@ -93,7 +94,7 @@ service ManagementService { }; } - // GetUserByLoginNameGlobal searches a user over all organisations + // Searches a user over all organisations // the login name has to match exactly rpc GetUserByLoginNameGlobal(GetUserByLoginNameGlobalRequest) returns (GetUserByLoginNameGlobalResponse) { option (google.api.http) = { @@ -119,6 +120,7 @@ service ManagementService { }; } + // Return the users matching the query // Limit should always be set, there is a default limit set by the service rpc ListUsers(ListUsersRequest) returns (ListUsersResponse) { option (google.api.http) = { @@ -131,6 +133,8 @@ service ManagementService { }; } + // Returns the history of the user (each event) + // Limit should always be set, there is a default limit set by the service rpc ListUserChanges(ListUserChangesRequest) returns (ListUserChangesResponse) { option (google.api.http) = { post: "/users/{user_id}/changes/_search" @@ -142,6 +146,7 @@ service ManagementService { }; } + // Returns if a user with the searched email or username is unique rpc IsUserUnique(IsUserUniqueRequest) returns (IsUserUniqueResponse) { option (google.api.http) = { get: "/users/_is_unique" @@ -152,6 +157,9 @@ service ManagementService { }; } + // 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 rpc AddHumanUser(AddHumanUserRequest) returns (AddHumanUserResponse) { option (google.api.http) = { post: "/users/human" @@ -163,6 +171,9 @@ service ManagementService { }; } + // 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 rpc ImportHumanUser(ImportHumanUserRequest) returns (ImportHumanUserResponse) { option (google.api.http) = { post: "/users/human/_import" @@ -174,6 +185,7 @@ service ManagementService { }; } + // Create a user of the type machine rpc AddMachineUser(AddMachineUserRequest) returns (AddMachineUserResponse) { option (google.api.http) = { post: "/users/machine" @@ -185,6 +197,9 @@ service ManagementService { }; } + // Changes the user state to deactivated + // The user will not be able to login + // returns an error if user state is already deactivated rpc DeactivateUser(DeactivateUserRequest) returns (DeactivateUserResponse) { option (google.api.http) = { post: "/users/{id}/_deactivate" @@ -196,6 +211,8 @@ service ManagementService { }; } + // Changes the user state to active + // returns an error if user state is not deactivated rpc ReactivateUser(ReactivateUserRequest) returns (ReactivateUserResponse) { option (google.api.http) = { post: "/users/{id}/_reactivate" @@ -207,6 +224,9 @@ service ManagementService { }; } + // Changes the user state to deactivated + // The user will not be able to login + // returns an error if user state is already locked rpc LockUser(LockUserRequest) returns (LockUserResponse) { option (google.api.http) = { post: "/users/{id}/_lock" @@ -218,6 +238,8 @@ service ManagementService { }; } + // Changes the user state to active + // returns an error if user state is not locked rpc UnlockUser(UnlockUserRequest) returns (UnlockUserResponse) { option (google.api.http) = { post: "/users/{id}/_unlock" @@ -229,6 +251,7 @@ service ManagementService { }; } + // Changes the user state to deleted rpc RemoveUser(RemoveUserRequest) returns (RemoveUserResponse) { option (google.api.http) = { delete: "/users/{id}" @@ -239,6 +262,7 @@ service ManagementService { }; } + // Changes the username rpc UpdateUserName(UpdateUserNameRequest) returns (UpdateUserNameResponse) { option (google.api.http) = { get: "/users/{user_id}/username" @@ -249,6 +273,7 @@ service ManagementService { }; } + // Returns the profile of the human rpc GetHumanProfile(GetHumanProfileRequest) returns (GetHumanProfileResponse) { option (google.api.http) = { get: "/users/{user_id}/profile" @@ -259,6 +284,7 @@ service ManagementService { }; } + // Changes the profile of the human rpc UpdateHumanProfile(UpdateHumanProfileRequest) returns (UpdateHumanProfileResponse) { option (google.api.http) = { put: "/users/{user_id}/profile" @@ -270,6 +296,7 @@ service ManagementService { }; } + // GetHumanEmail returns the email and verified state of the human rpc GetHumanEmail(GetHumanEmailRequest) returns (GetHumanEmailResponse) { option (google.api.http) = { get: "/users/{user_id}/email" @@ -280,6 +307,8 @@ service ManagementService { }; } + // Changes the email of the human + // If state is not verified, the user will get a verification email rpc UpdateHumanEmail(UpdateHumanEmailRequest) returns (UpdateHumanEmailResponse) { option (google.api.http) = { put: "/users/{user_id}/email" @@ -291,6 +320,8 @@ service ManagementService { }; } + // 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 rpc ResendHumanInitialization(ResendHumanInitializationRequest) returns (ResendHumanInitializationResponse) { option (google.api.http) = { post: "/users/{user_id}/_resend_initialization" @@ -302,6 +333,7 @@ service ManagementService { }; } + // Resends an email to the given email address to finish the email verification process of the user rpc ResendHumanEmailVerification(ResendHumanEmailVerificationRequest) returns (ResendHumanEmailVerificationResponse) { option (google.api.http) = { post: "/users/{user_id}/email/_resend_verification" @@ -313,6 +345,7 @@ service ManagementService { }; } + // Returns the phone and verified state of the human phone rpc GetHumanPhone(GetHumanPhoneRequest) returns (GetHumanPhoneResponse) { option (google.api.http) = { get: "/users/{user_id}/phone" @@ -323,6 +356,8 @@ service ManagementService { }; } + // Changes the phone number + // If verified is not set, the user will get an sms to verify the number rpc UpdateHumanPhone(UpdateHumanPhoneRequest) returns (UpdateHumanPhoneResponse) { option (google.api.http) = { put: "/users/{user_id}/phone" @@ -334,6 +369,7 @@ service ManagementService { }; } + // Removes the phone number of the human rpc RemoveHumanPhone(RemoveHumanPhoneRequest) returns (RemoveHumanPhoneResponse) { option (google.api.http) = { delete: "/users/{user_id}/phone" @@ -344,6 +380,7 @@ service ManagementService { }; } + // An sms will be sent to the given phone number to finish the phone verification process of the user rpc ResendHumanPhoneVerification(ResendHumanPhoneVerificationRequest) returns (ResendHumanPhoneVerificationResponse) { option (google.api.http) = { post: "/users/{user_id}/phone/_resend_verification" @@ -367,6 +404,7 @@ service ManagementService { }; } + // An email will be sent to the given address to reset the password of the user rpc SendHumanResetPasswordNotification(SendHumanResetPasswordNotificationRequest) returns (SendHumanResetPasswordNotificationResponse) { option (google.api.http) = { post: "/users/{user_id}/password/_reset" @@ -378,6 +416,7 @@ service ManagementService { }; } + // Returns a list of all factors (second and multi) which are configured on the user rpc ListHumanAuthFactors(ListHumanAuthFactorsRequest) returns (ListHumanAuthFactorsResponse) { option (google.api.http) = { post: "/users/{user_id}/auth_factors/_search" @@ -388,6 +427,8 @@ service ManagementService { }; } + // 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 rpc RemoveHumanAuthFactorOTP(RemoveHumanAuthFactorOTPRequest) returns (RemoveHumanAuthFactorOTPResponse) { option (google.api.http) = { delete: "/users/{user_id}/auth_factors/otp" @@ -398,6 +439,7 @@ service ManagementService { }; } + // The u2f (universial second factor) will be removed from the user rpc RemoveHumanAuthFactorU2F(RemoveHumanAuthFactorU2FRequest) returns (RemoveHumanAuthFactorU2FResponse) { option (google.api.http) = { delete: "/users/{user_id}/auth_factors/u2f/{token_id}" @@ -408,6 +450,7 @@ service ManagementService { }; } + // Returns all configured passwordless authentications rpc ListHumanPasswordless(ListHumanPasswordlessRequest) returns (ListHumanPasswordlessResponse) { option (google.api.http) = { post: "/users/{user_id}/passwordless/_search" @@ -418,6 +461,7 @@ service ManagementService { }; } + // Removed a configured passwordless authentication rpc RemoveHumanPasswordless(RemoveHumanPasswordlessRequest) returns (RemoveHumanPasswordlessResponse) { option (google.api.http) = { delete: "/users/{user_id}/passwordless/{token_id}" @@ -428,6 +472,7 @@ service ManagementService { }; } + // Changes a machine user rpc UpdateMachine(UpdateMachineRequest) returns (UpdateMachineResponse) { option (google.api.http) = { put: "/users/{user_id}/machine" @@ -439,6 +484,7 @@ service ManagementService { }; } + // Returns a machine key of a (machine) user rpc GetMachineKeyByIDs(GetMachineKeyByIDsRequest) returns (GetMachineKeyByIDsResponse) { option (google.api.http) = { get: "/users/{user_id}/keys/{key_id}" @@ -449,6 +495,8 @@ service ManagementService { }; } + // 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 rpc ListMachineKeys(ListMachineKeysRequest) returns (ListMachineKeysResponse) { option (google.api.http) = { post: "/users/{user_id}/keys/_search" @@ -460,6 +508,7 @@ service ManagementService { }; } + // Generates a new machine key, details should be stored after return rpc AddMachineKey(AddMachineKeyRequest) returns (AddMachineKeyResponse) { option (google.api.http) = { post: "/users/{user_id}/keys" @@ -471,6 +520,7 @@ service ManagementService { }; } + // Removed a machine key rpc RemoveMachineKey(RemoveMachineKeyRequest) returns (RemoveMachineKeyResponse) { option (google.api.http) = { delete: "/users/{user_id}/keys/{key_id}" @@ -481,6 +531,8 @@ service ManagementService { }; } + // 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 rpc ListHumanLinkedIDPs(ListHumanLinkedIDPsRequest) returns (ListHumanLinkedIDPsResponse) { option (google.api.http) = { post: "/users/{user_id}/idps/_search" @@ -492,6 +544,7 @@ service ManagementService { }; } + // Removed a configured identity provider (social login) of a human rpc RemoveHumanLinkedIDP(RemoveHumanLinkedIDPRequest) returns (RemoveHumanLinkedIDPResponse) { option (google.api.http) = { delete: "/users/{user_id}/idps/{idp_id}/{linked_user_id}" @@ -502,6 +555,8 @@ service ManagementService { }; } + // 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 rpc ListUserMemberships(ListUserMembershipsRequest) returns (ListUserMembershipsResponse) { option (google.api.http) = { post: "/users/{user_id}/memberships/_search" @@ -513,6 +568,7 @@ service ManagementService { }; } + // Returns the org given in the header rpc GetMyOrg(GetMyOrgRequest) returns (GetMyOrgResponse) { option (google.api.http) = { get: "/orgs/me" @@ -523,6 +579,8 @@ service ManagementService { }; } + // Search a org over all organisations + // Domain must match exactly rpc GetOrgByDomainGlobal(GetOrgByDomainGlobalRequest) returns (GetOrgByDomainGlobalResponse) { option (google.api.http) = { get: "/global/orgs/_by_domain" @@ -533,6 +591,8 @@ service ManagementService { }; } + // Returns the history of my organisation (each event) + // Limit should always be set, there is a default limit set by the service rpc ListOrgChanges(ListOrgChangesRequest) returns (ListOrgChangesResponse) { option (google.api.http) = { post: "/orgs/me/changes/_search" @@ -544,6 +604,7 @@ service ManagementService { }; } + // Creates a new organisation rpc AddOrg(AddOrgRequest) returns (AddOrgResponse) { option (google.api.http) = { post: "/orgs" @@ -555,6 +616,8 @@ service ManagementService { }; } + // Sets the state of my organisation to deactivated + // Users of this organisation will not be able login rpc DeactivateOrg(DeactivateOrgRequest) returns (DeactivateOrgResponse) { option (google.api.http) = { post: "/orgs/me/_deactivate" @@ -566,6 +629,7 @@ service ManagementService { }; } + // Sets the state of my organisation to active rpc ReactivateOrg(ReactivateOrgRequest) returns (ReactivateOrgResponse) { option (google.api.http) = { post: "/orgs/me/_reactivate" @@ -577,6 +641,8 @@ service ManagementService { }; } + // Returns all registered domains of my organisation + // Limit should always be set, there is a default limit set by the service rpc ListOrgDomains(ListOrgDomainsRequest) returns (ListOrgDomainsResponse) { option (google.api.http) = { post: "/orgs/me/domains/_search" @@ -588,6 +654,7 @@ service ManagementService { }; } + // Adds a new domain to my organisation rpc AddOrgDomain(AddOrgDomainRequest) returns (AddOrgDomainResponse) { option (google.api.http) = { post: "/orgs/me/domains" @@ -600,6 +667,7 @@ service ManagementService { }; } + // Removed the domain from my organisation rpc RemoveOrgDomain(RemoveOrgDomainRequest) returns (RemoveOrgDomainResponse) { option (google.api.http) = { delete: "/orgs/me/domains/{domain}" @@ -610,6 +678,7 @@ service ManagementService { }; } + // Generates a new file to validate you domain rpc GenerateOrgDomainValidation(GenerateOrgDomainValidationRequest) returns (GenerateOrgDomainValidationResponse) { option (google.api.http) = { post: "/orgs/me/domains/{domain}/validation/_generate" @@ -622,6 +691,8 @@ service ManagementService { }; } + // Validates your domain with the choosen method + // Validated domains must be unique rpc ValidateOrgDomain(ValidateOrgDomainRequest) returns (ValidateOrgDomainResponse) { option (google.api.http) = { post: "/orgs/me/domains/{domain}/validation/_validate" @@ -634,6 +705,8 @@ service ManagementService { }; } + // Sets the domain as primary + // Primary domain is shown as suffix on the preferred username on the users of the organisation rpc SetPrimaryOrgDomain(SetPrimaryOrgDomainRequest) returns (SetPrimaryOrgDomainResponse) { option (google.api.http) = { post: "/orgs/me/domains/{domain}/_set_primary" @@ -645,6 +718,7 @@ service ManagementService { }; } + // Returns all ZITADEL roles which are for organisation managers rpc ListOrgMemberRoles(ListOrgMemberRolesRequest) returns (ListOrgMemberRolesResponse) { option (google.api.http) = { post: "/orgs/members/roles/_search" @@ -655,6 +729,8 @@ service ManagementService { }; } + // 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 rpc ListOrgMembers(ListOrgMembersRequest) returns (ListOrgMembersResponse) { option (google.api.http) = { post: "/orgs/me/members/_search" @@ -666,6 +742,7 @@ service ManagementService { }; } + // Adds a new organisation manager, which is allowed to administrate ZITADEL rpc AddOrgMember(AddOrgMemberRequest) returns (AddOrgMemberResponse) { option (google.api.http) = { post: "/orgs/me/members" @@ -677,6 +754,7 @@ service ManagementService { }; } + // Changes the organisation manager rpc UpdateOrgMember(UpdateOrgMemberRequest) returns (UpdateOrgMemberResponse) { option (google.api.http) = { put: "/orgs/me/members/{user_id}" @@ -688,6 +766,7 @@ service ManagementService { }; } + // Removes an organisation manager rpc RemoveOrgMember(RemoveOrgMemberRequest) returns (RemoveOrgMemberResponse) { option (google.api.http) = { delete: "/orgs/me/members/{user_id}" @@ -698,6 +777,7 @@ service ManagementService { }; } + // Returns a project from my organisation (no granted projects) rpc GetProjectByID(GetProjectByIDRequest) returns (GetProjectByIDResponse) { option (google.api.http) = { get: "/projects/{id}" @@ -721,6 +801,8 @@ service ManagementService { }; } + // 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 rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse) { option (google.api.http) = { post: "/projects/_search" @@ -732,7 +814,8 @@ service ManagementService { }; } - // returns all projects my organisation got granted from another organisation + // returns all projects my organisation got granted from another organisation + // Limit should always be set, there is a default limit set by the service rpc ListGrantedProjects(ListGrantedProjectsRequest) returns (ListGrantedProjectsResponse) { option (google.api.http) = { post: "/granted_projects/_search" @@ -745,6 +828,7 @@ service ManagementService { } // returns all roles of a project grant + // Limit should always be set, there is a default limit set by the service rpc ListGrantedProjectRoles(ListGrantedProjectRolesRequest) returns (ListGrantedProjectRolesResponse) { option (google.api.http) = { get: "/granted_projects/{project_id}/grants/{grant_id}/roles/_search" @@ -756,6 +840,8 @@ service ManagementService { }; } + // Returns the history of the project (each event) + // Limit should always be set, there is a default limit set by the service rpc ListProjectChanges(ListProjectChangesRequest) returns (ListProjectChangesResponse) { option (google.api.http) = { post: "/projects/{project_id}/changes/_search" @@ -766,6 +852,7 @@ service ManagementService { }; } + // Adds an new project to the organisation rpc AddProject(AddProjectRequest) returns (AddProjectResponse) { option (google.api.http) = { post: "/projects" @@ -777,6 +864,7 @@ service ManagementService { }; } + // Changes a project rpc UpdateProject(UpdateProjectRequest) returns (UpdateProjectResponse) { option (google.api.http) = { put: "/projects/{id}" @@ -789,6 +877,8 @@ service ManagementService { }; } + // Sets the state of a project to deactivated + // Returns an error if project is already deactivated rpc DeactivateProject(DeactivateProjectRequest) returns (DeactivateProjectResponse) { option (google.api.http) = { post: "/projects/{id}/_deactivate" @@ -801,6 +891,8 @@ service ManagementService { }; } + // Sets the state of a project to active + // Returns an error if project is not deactivated rpc ReactivateProject(ReactivateProjectRequest) returns (ReactivateProjectResponse) { option (google.api.http) = { post: "/projects/{id}/_reactivate" @@ -813,6 +905,8 @@ service ManagementService { }; } + // Removes a project + // All project grants, applications and user grants for this project will be removed rpc RemoveProject(RemoveProjectRequest) returns (RemoveProjectResponse) { option (google.api.http) = { delete: "/projects/{id}" @@ -824,6 +918,8 @@ service ManagementService { }; } + // 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 rpc ListProjectRoles(ListProjectRolesRequest) returns (ListProjectRolesResponse) { option (google.api.http) = { post: "/projects/{project_id}/roles/_search" @@ -836,6 +932,7 @@ service ManagementService { }; } + // Adds a role to a project, key must be unique in the project rpc AddProjectRole(AddProjectRoleRequest) returns (AddProjectRoleResponse) { option (google.api.http) = { post: "/projects/{project_id}/roles" @@ -861,6 +958,8 @@ service ManagementService { }; } + // Changes a project role, key is not editable + // If a key should change, remove the role and create a new rpc UpdateProjectRole(UpdateProjectRoleRequest) returns (UpdateProjectRoleResponse) { option (google.api.http) = { put: "/projects/{project_id}/roles/{role_key}" @@ -873,7 +972,7 @@ service ManagementService { }; } - // RemoveProjectRole removes role from UserGrants, ProjectGrants and from Project + // Removes role from UserGrants, ProjectGrants and from Project rpc RemoveProjectRole(RemoveProjectRoleRequest) returns (RemoveProjectRoleResponse) { option (google.api.http) = { delete: "/projects/{project_id}/roles/{role_key}" @@ -885,6 +984,7 @@ service ManagementService { }; } + // Returns all ZITADEL roles which are for project managers rpc ListProjectMemberRoles(ListProjectMemberRolesRequest) returns (ListProjectMemberRolesResponse) { option (google.api.http) = { post: "/projects/members/roles/_search" @@ -895,6 +995,8 @@ service ManagementService { }; } + // Returns all ZITADEL managers of a projects + // Limit should always be set, there is a default limit set by the service rpc ListProjectMembers(ListProjectMembersRequest) returns (ListProjectMembersResponse) { option (google.api.http) = { post: "/projects/{project_id}/members/_search" @@ -907,6 +1009,7 @@ service ManagementService { }; } + // Adds a new project manager, which is allowed to administrate in ZITADEL rpc AddProjectMember(AddProjectMemberRequest) returns (AddProjectMemberResponse) { option (google.api.http) = { post: "/projects/{project_id}/members" @@ -919,6 +1022,7 @@ service ManagementService { }; } + // Change project manager, which is allowed to administrate in ZITADEL rpc UpdateProjectMember(UpdateProjectMemberRequest) returns (UpdateProjectMemberResponse) { option (google.api.http) = { put: "/projects/{project_id}/members/{user_id}" @@ -931,6 +1035,7 @@ service ManagementService { }; } + // Remove project manager, which is allowed to administrate in ZITADEL rpc RemoveProjectMember(RemoveProjectMemberRequest) returns (RemoveProjectMemberResponse) { option (google.api.http) = { delete: "/projects/{project_id}/members/{user_id}" @@ -942,6 +1047,7 @@ service ManagementService { }; } + // Returns an application (oidc or api) rpc GetAppByID(GetAppByIDRequest) returns (GetAppByIDResponse) { option (google.api.http) = { get: "/projects/{project_id}/apps/{app_id}" @@ -953,6 +1059,8 @@ service ManagementService { }; } + // Returns all applications of a project matching the query + // Limit should always be set, there is a default limit set by the service rpc ListApps(ListAppsRequest) returns (ListAppsResponse) { option (google.api.http) = { post: "/projects/{project_id}/apps/_search" @@ -965,6 +1073,8 @@ service ManagementService { }; } + // Returns the history of the application (each event) + // Limit should always be set, there is a default limit set by the service rpc ListAppChanges(ListAppChangesRequest) returns (ListAppChangesResponse) { option (google.api.http) = { post: "/projects/{project_id}/apps/{app_id}/changes/_search" @@ -976,6 +1086,9 @@ service ManagementService { }; } + // Adds a new oidc client + // Returns a client id + // Returns a new generated secret if needed (Depending on the configuration) rpc AddOIDCApp(AddOIDCAppRequest) returns (AddOIDCAppResponse) { option (google.api.http) = { post: "/projects/{project_id}/apps/oidc" @@ -988,6 +1101,9 @@ service ManagementService { }; } + // Adds a new api application + // Returns a client id + // Returns a new generated secret if needed (Depending on the configuration) rpc AddAPIApp(AddAPIAppRequest) returns (AddAPIAppResponse) { option (google.api.http) = { post: "/projects/{project_id}/apps/api" @@ -1000,6 +1116,7 @@ service ManagementService { }; } + // Changes application rpc UpdateApp(UpdateAppRequest) returns (UpdateAppResponse) { option (google.api.http) = { put: "/projects/{project_id}/apps/{app_id}" @@ -1012,6 +1129,7 @@ service ManagementService { }; } + // Changes the configuration of the oidc client rpc UpdateOIDCAppConfig(UpdateOIDCAppConfigRequest) returns (UpdateOIDCAppConfigResponse) { option (google.api.http) = { put: "/projects/{project_id}/apps/{app_id}/oidc_config" @@ -1024,6 +1142,7 @@ service ManagementService { }; } + // Changes the configuration of the api application rpc UpdateAPIAppConfig(UpdateAPIAppConfigRequest) returns (UpdateAPIAppConfigResponse) { option (google.api.http) = { put: "/projects/{project_id}/apps/{app_id}/api_config" @@ -1036,6 +1155,9 @@ service ManagementService { }; } + // Set the state to deactivated + // Its not possible to request tokens for deactivated apps + // Returns an error if already deactivated rpc DeactivateApp(DeactivateAppRequest) returns (DeactivateAppResponse) { option (google.api.http) = { post: "/projects/{project_id}/apps/{app_id}/_deactivate" @@ -1048,6 +1170,8 @@ service ManagementService { }; } + // Set the state to active + // Returns an error if not deactivated rpc ReactivateApp(ReactivateAppRequest) returns (ReactivateAppResponse) { option (google.api.http) = { post: "/projects/{project_id}/apps/{app_id}/_reactivate" @@ -1060,6 +1184,7 @@ service ManagementService { }; } + // Removed the application rpc RemoveApp(RemoveAppRequest) returns (RemoveAppResponse) { option (google.api.http) = { delete: "/projects/{project_id}/apps/{app_id}" @@ -1071,6 +1196,7 @@ service ManagementService { }; } + // Generates a new client secret for the oidc client, make sure to save the response rpc RegenerateOIDCClientSecret(RegenerateOIDCClientSecretRequest) returns (RegenerateOIDCClientSecretResponse) { option (google.api.http) = { post: "/projects/{project_id}/apps/{app_id}/oidc_config/_generate_client_secret" @@ -1083,6 +1209,7 @@ service ManagementService { }; } + // Generates a new client secret for the api application, make sure to save the response rpc RegenerateAPIClientSecret(RegenerateAPIClientSecretRequest) returns (RegenerateAPIClientSecretResponse) { option (google.api.http) = { post: "/projects/{project_id}/apps/{app_id}/api_config/_generate_client_secret" @@ -1095,6 +1222,7 @@ service ManagementService { }; } + // Returns an application key rpc GetAppKey(GetAppKeyRequest) returns (GetAppKeyResponse) { option (google.api.http) = { get: "/projects/{project_id}/apps/{app_id}/keys/{key_id}" @@ -1106,6 +1234,8 @@ service ManagementService { }; } + // Returns all application keys matching the result + // Limit should always be set, there is a default limit set by the service rpc ListAppKeys(ListAppKeysRequest) returns (ListAppKeysResponse) { option (google.api.http) = { post: "/projects/{project_id}/apps/{app_id}/keys/_search" @@ -1118,6 +1248,8 @@ service ManagementService { }; } + // Creates a new app key + // Will return key details in result, make sure to save it rpc AddAppKey(AddAppKeyRequest) returns (AddAppKeyResponse){ option (google.api.http) = { post: "/projects/{project_id}/apps/{app_id}/keys" @@ -1130,6 +1262,7 @@ service ManagementService { }; } + // Removes an app key rpc RemoveAppKey(RemoveAppKeyRequest) returns (RemoveAppKeyResponse) { option (google.api.http) = { delete: "/projects/{project_id}/apps/{app_id}/keys/{key_id}" @@ -1141,6 +1274,7 @@ service ManagementService { }; } + // Returns a project grant (ProjectGrant = Grant another organisation for my project) rpc GetProjectGrantByID(GetProjectGrantByIDRequest) returns (GetProjectGrantByIDResponse) { option (google.api.http) = { get: "/projects/{project_id}/grants/{grant_id}" @@ -1151,6 +1285,8 @@ service ManagementService { }; } + // 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 rpc ListProjectGrants(ListProjectGrantsRequest) returns (ListProjectGrantsResponse) { option (google.api.http) = { post: "/projects/{project_id}/grants/_search" @@ -1163,6 +1299,8 @@ service ManagementService { }; } + // Add a new project grant (ProjectGrant = Grant another organisation for my project) + // Project Grant will be listed in granted project of the other organisation rpc AddProjectGrant(AddProjectGrantRequest) returns (AddProjectGrantResponse) { option (google.api.http) = { post: "/projects/{project_id}/grants" @@ -1174,6 +1312,8 @@ service ManagementService { }; } + // Change project grant (ProjectGrant = Grant another organisation for my project) + // Project Grant will be listed in granted project of the other organisation rpc UpdateProjectGrant(UpdateProjectGrantRequest) returns (UpdateProjectGrantResponse) { option (google.api.http) = { put: "/projects/{project_id}/grants/{grant_id}" @@ -1185,6 +1325,8 @@ service ManagementService { }; } + // Set state of project grant to deactivated (ProjectGrant = Grant another organisation for my project) + // Returns error if project not active rpc DeactivateProjectGrant(DeactivateProjectGrantRequest) returns (DeactivateProjectGrantResponse) { option (google.api.http) = { post: "/projects/{project_id}/grants/{grant_id}/_deactivate" @@ -1196,6 +1338,8 @@ service ManagementService { }; } + // Set state of project grant to active (ProjectGrant = Grant another organisation for my project) + // Returns error if project not deactivated rpc ReactivateProjectGrant(ReactivateProjectGrantRequest) returns (ReactivateProjectGrantResponse) { option (google.api.http) = { post: "/projects/{project_id}/grants/{grant_id}/_reactivate" @@ -1207,7 +1351,7 @@ service ManagementService { }; } - // RemoveProjectGrant removes project grant and all user grants for this project grant + // Removes project grant and all user grants for this project grant rpc RemoveProjectGrant(RemoveProjectGrantRequest) returns (RemoveProjectGrantResponse) { option (google.api.http) = { delete: "/projects/{project_id}/grants/{grant_id}" @@ -1218,6 +1362,7 @@ service ManagementService { }; } + // Returns all ZITADEL roles which are for project grant managers rpc ListProjectGrantMemberRoles(ListProjectGrantMemberRolesRequest) returns (ListProjectGrantMemberRolesResponse) { option (google.api.http) = { post: "/projects/grants/members/roles/_search" @@ -1228,6 +1373,8 @@ service ManagementService { }; } + // Returns all ZITADEL managers of this project grant + // Limit should always be set, there is a default limit set by the service rpc ListProjectGrantMembers(ListProjectGrantMembersRequest) returns (ListProjectGrantMembersResponse) { option (google.api.http) = { post: "/projects/{project_id}/grants/{grant_id}/members/_search" @@ -1239,6 +1386,7 @@ service ManagementService { }; } + // Adds a new project grant manager, which is allowed to administrate in ZITADEL rpc AddProjectGrantMember(AddProjectGrantMemberRequest) returns (AddProjectGrantMemberResponse) { option (google.api.http) = { post: "/projects/{project_id}/grants/{grant_id}/members" @@ -1250,6 +1398,7 @@ service ManagementService { }; } + // Changes project grant manager, which is allowed to administrate in ZITADEL rpc UpdateProjectGrantMember(UpdateProjectGrantMemberRequest) returns (UpdateProjectGrantMemberResponse) { option (google.api.http) = { put: "/projects/{project_id}/grants/{grant_id}/members/{user_id}" @@ -1261,6 +1410,7 @@ service ManagementService { }; } + // Removed project grant manager rpc RemoveProjectGrantMember(RemoveProjectGrantMemberRequest) returns (RemoveProjectGrantMemberResponse) { option (google.api.http) = { delete: "/projects/{project_id}/grants/{grant_id}/members/{user_id}" @@ -1271,6 +1421,7 @@ service ManagementService { }; } + // Returns a user grant (authorization of a user for a project) rpc GetUserGrantByID(GetUserGrantByIDRequest) returns (GetUserGrantByIDResponse) { option (google.api.http) = { get: "/users/{user_id}/grants/{grant_id}" @@ -1281,6 +1432,8 @@ service ManagementService { }; } + // 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 rpc ListUserGrants(ListUserGrantRequest) returns (ListUserGrantResponse) { option (google.api.http) = { post: "/users/grants/_search" @@ -1292,6 +1445,7 @@ service ManagementService { }; } + // Creates a new user grant (authorization of a user for a project with specified roles) rpc AddUserGrant(AddUserGrantRequest) returns (AddUserGrantResponse) { option (google.api.http) = { post: "/users/{user_id}/grants" @@ -1303,6 +1457,7 @@ service ManagementService { }; } + // Changes a user grant (authorization of a user for a project with specified roles) rpc UpdateUserGrant(UpdateUserGrantRequest) returns (UpdateUserGrantResponse) { option (google.api.http) = { put: "/users/{user_id}/grants/{grant_id}" @@ -1314,6 +1469,9 @@ service ManagementService { }; } + // 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 rpc DeactivateUserGrant(DeactivateUserGrantRequest) returns (DeactivateUserGrantResponse) { option (google.api.http) = { post: "/users/{user_id}/grants/{grant_id}/_deactivate" @@ -1325,6 +1483,8 @@ service ManagementService { }; } + // Sets the state of a user grant to active + // Returns an error if user grant is not deactivated rpc ReactivateUserGrant(ReactivateUserGrantRequest) returns (ReactivateUserGrantResponse) { option (google.api.http) = { post: "/users/{user_id}/grants/{grant_id}/_reactivate" @@ -1336,6 +1496,7 @@ service ManagementService { }; } + // Removes a user grant rpc RemoveUserGrant(RemoveUserGrantRequest) returns (RemoveUserGrantResponse) { option (google.api.http) = { delete: "/users/{user_id}/grants/{grant_id}" @@ -1368,6 +1529,7 @@ service ManagementService { }; } + // Returns the org iam policy (this policy is managed by the iam administrator) rpc GetOrgIAMPolicy(GetOrgIAMPolicyRequest) returns (GetOrgIAMPolicyResponse) { option (google.api.http) = { get: "/policies/orgiam" @@ -1378,6 +1540,8 @@ service ManagementService { }; } + // Returns the login policy of the organisation + // With this policy the login gui can be configured rpc GetLoginPolicy(GetLoginPolicyRequest) returns (GetLoginPolicyResponse) { option (google.api.http) = { get: "/policies/login" @@ -1388,6 +1552,7 @@ service ManagementService { }; } + // Returns the default login policy configured in the IAM rpc GetDefaultLoginPolicy(GetDefaultLoginPolicyRequest) returns (GetDefaultLoginPolicyResponse) { option (google.api.http) = { get: "/policies/default/login" @@ -1398,6 +1563,8 @@ service ManagementService { }; } + // Add a custom login policy for the organisation + // With this policy the login gui can be configured rpc AddCustomLoginPolicy(AddCustomLoginPolicyRequest) returns (AddCustomLoginPolicyResponse) { option (google.api.http) = { post: "/policies/login" @@ -1410,6 +1577,8 @@ service ManagementService { }; } + // Change the custom login policy for the organisation + // With this policy the login gui can be configured rpc UpdateCustomLoginPolicy(UpdateCustomLoginPolicyRequest) returns (UpdateCustomLoginPolicyResponse) { option (google.api.http) = { put: "/policies/login" @@ -1422,6 +1591,8 @@ service ManagementService { }; } + // Removes the custom login policy of the organisation + // The default policy of the IAM will trigger after rpc ResetLoginPolicyToDefault(ResetLoginPolicyToDefaultRequest) returns (ResetLoginPolicyToDefaultResponse) { option (google.api.http) = { delete: "/policies/login" @@ -1432,6 +1603,8 @@ service ManagementService { }; } + // Lists all possible identity providers configured on the organisation + // Limit should always be set, there is a default limit set by the service rpc ListLoginPolicyIDPs(ListLoginPolicyIDPsRequest) returns (ListLoginPolicyIDPsResponse) { option (google.api.http) = { post: "/policies/login/idps/_search" @@ -1443,6 +1616,7 @@ service ManagementService { }; } + // Add a (preconfigured) identity provider to the custom login policy rpc AddIDPToLoginPolicy(AddIDPToLoginPolicyRequest) returns (AddIDPToLoginPolicyResponse) { option (google.api.http) = { post: "/policies/login/idps" @@ -1455,6 +1629,7 @@ service ManagementService { }; } + // Remove a identity provider from the custom login policy rpc RemoveIDPFromLoginPolicy(RemoveIDPFromLoginPolicyRequest) returns (RemoveIDPFromLoginPolicyResponse) { option (google.api.http) = { delete: "/policies/login/idps/{idp_id}" @@ -1466,6 +1641,7 @@ service ManagementService { }; } + // Returns all configured second factors of the custom login policy rpc ListLoginPolicySecondFactors(ListLoginPolicySecondFactorsRequest) returns (ListLoginPolicySecondFactorsResponse) { option (google.api.http) = { post: "/policies/login/second_factors/_search" @@ -1476,6 +1652,7 @@ service ManagementService { }; } + // Adds a new second factor to the custom login policy rpc AddSecondFactorToLoginPolicy(AddSecondFactorToLoginPolicyRequest) returns (AddSecondFactorToLoginPolicyResponse) { option (google.api.http) = { post: "/policies/login/second_factors" @@ -1488,6 +1665,7 @@ service ManagementService { }; } + // Remove a second factor from the custom login policy rpc RemoveSecondFactorFromLoginPolicy(RemoveSecondFactorFromLoginPolicyRequest) returns (RemoveSecondFactorFromLoginPolicyResponse) { option (google.api.http) = { delete: "/policies/login/second_factors/{type}" @@ -1499,6 +1677,7 @@ service ManagementService { }; } + // Returns all configured multi factors of the custom login policy rpc ListLoginPolicyMultiFactors(ListLoginPolicyMultiFactorsRequest) returns (ListLoginPolicyMultiFactorsResponse) { option (google.api.http) = { post: "/policies/login/auth_factors/_search" @@ -1509,6 +1688,7 @@ service ManagementService { }; } + // Adds a new multi factor to the custom login policy rpc AddMultiFactorToLoginPolicy(AddMultiFactorToLoginPolicyRequest) returns (AddMultiFactorToLoginPolicyResponse) { option (google.api.http) = { post: "/policies/login/multi_factors" @@ -1521,6 +1701,7 @@ service ManagementService { }; } + // Remove a multi factor from the custom login policy rpc RemoveMultiFactorFromLoginPolicy(RemoveMultiFactorFromLoginPolicyRequest) returns (RemoveMultiFactorFromLoginPolicyResponse) { option (google.api.http) = { delete: "/policies/login/multi_factors/{type}" @@ -1532,6 +1713,8 @@ service ManagementService { }; } + // Returns the password complexity policy of the organisation + // With this policy the password strength can be configured rpc GetPasswordComplexityPolicy(GetPasswordComplexityPolicyRequest) returns (GetPasswordComplexityPolicyResponse) { option (google.api.http) = { get: "/policies/password/complexity" @@ -1542,6 +1725,8 @@ service ManagementService { }; } + // Returns the default password complexity policy of the IAM + // With this policy the password strength can be configured rpc GetDefaultPasswordComplexityPolicy(GetDefaultPasswordComplexityPolicyRequest) returns (GetDefaultPasswordComplexityPolicyResponse) { option (google.api.http) = { get: "/policies/default/password/complexity" @@ -1552,6 +1737,8 @@ service ManagementService { }; } + // Add a custom password complexity policy for the organisation + // With this policy the password strength can be configured rpc AddCustomPasswordComplexityPolicy(AddCustomPasswordComplexityPolicyRequest) returns (AddCustomPasswordComplexityPolicyResponse) { option (google.api.http) = { post: "/policies/password/complexity" @@ -1564,6 +1751,8 @@ service ManagementService { }; } + // Update the custom password complexity policy for the organisation + // With this policy the password strength can be configured rpc UpdateCustomPasswordComplexityPolicy(UpdateCustomPasswordComplexityPolicyRequest) returns (UpdateCustomPasswordComplexityPolicyResponse) { option (google.api.http) = { put: "/policies/password/complexity" @@ -1576,6 +1765,8 @@ service ManagementService { }; } + // Removes the custom password complexity policy of the organisation + // The default policy of the IAM will trigger after rpc ResetPasswordComplexityPolicyToDefault(ResetPasswordComplexityPolicyToDefaultRequest) returns (ResetPasswordComplexityPolicyToDefaultResponse) { option (google.api.http) = { delete: "/policies/password/complexity" @@ -1586,6 +1777,7 @@ service ManagementService { }; } + // The password age policy is not used at the moment rpc GetPasswordAgePolicy(GetPasswordAgePolicyRequest) returns (GetPasswordAgePolicyResponse) { option (google.api.http) = { get: "/policies/password/age" @@ -1596,6 +1788,7 @@ service ManagementService { }; } + // The password age policy is not used at the moment rpc GetDefaultPasswordAgePolicy(GetDefaultPasswordAgePolicyRequest) returns (GetDefaultPasswordAgePolicyResponse) { option (google.api.http) = { get: "/policies/default/password/age" @@ -1606,6 +1799,7 @@ service ManagementService { }; } + // The password age policy is not used at the moment rpc AddCustomPasswordAgePolicy(AddCustomPasswordAgePolicyRequest) returns (AddCustomPasswordAgePolicyResponse) { option (google.api.http) = { post: "/policies/password/age" @@ -1617,6 +1811,7 @@ service ManagementService { }; } + // The password age policy is not used at the moment rpc UpdateCustomPasswordAgePolicy(UpdateCustomPasswordAgePolicyRequest) returns (UpdateCustomPasswordAgePolicyResponse) { option (google.api.http) = { put: "/policies/password/age" @@ -1628,6 +1823,7 @@ service ManagementService { }; } + // The password age policy is not used at the moment rpc ResetPasswordAgePolicyToDefault(ResetPasswordAgePolicyToDefaultRequest) returns (ResetPasswordAgePolicyToDefaultResponse) { option (google.api.http) = { delete: "/policies/password/age" @@ -1638,6 +1834,7 @@ service ManagementService { }; } + // The password lockout policy is not used at the moment rpc GetPasswordLockoutPolicy(GetPasswordLockoutPolicyRequest) returns (GetPasswordLockoutPolicyResponse) { option (google.api.http) = { get: "/policies/password/lockout" @@ -1648,6 +1845,7 @@ service ManagementService { }; } + // The password lockout policy is not used at the moment rpc GetDefaultPasswordLockoutPolicy(GetDefaultPasswordLockoutPolicyRequest) returns (GetDefaultPasswordLockoutPolicyResponse) { option (google.api.http) = { get: "/policies/default/password/lockout" @@ -1658,6 +1856,7 @@ service ManagementService { }; } + // The password lockout policy is not used at the moment rpc AddCustomPasswordLockoutPolicy(AddCustomPasswordLockoutPolicyRequest) returns (AddCustomPasswordLockoutPolicyResponse) { option (google.api.http) = { post: "/policies/password/lockout" @@ -1669,6 +1868,7 @@ service ManagementService { }; } + // The password lockout policy is not used at the moment rpc UpdateCustomPasswordLockoutPolicy(UpdateCustomPasswordLockoutPolicyRequest) returns (UpdateCustomPasswordLockoutPolicyResponse) { option (google.api.http) = { put: "/policies/password/lockout" @@ -1680,6 +1880,7 @@ service ManagementService { }; } + // The password lockout policy is not used at the moment rpc ResetPasswordLockoutPolicyToDefault(ResetPasswordLockoutPolicyToDefaultRequest) returns (ResetPasswordLockoutPolicyToDefaultResponse) { option (google.api.http) = { delete: "/policies/password/lockout" @@ -1690,6 +1891,8 @@ service ManagementService { }; } + // Returns the label policy of the organisation + // With this policy the private labeling can be configured (colors, etc.) rpc GetLabelPolicy(GetLabelPolicyRequest) returns (GetLabelPolicyResponse) { option (google.api.http) = { get: "/policies/label" @@ -1700,6 +1903,8 @@ service ManagementService { }; } + // Returns the default label policy of the IAM + // With this policy the private labeling can be configured (colors, etc.) rpc GetDefaultLabelPolicy(GetDefaultLabelPolicyRequest) returns (GetDefaultLabelPolicyResponse) { option (google.api.http) = { get: "/policies/default/label" @@ -1710,6 +1915,8 @@ service ManagementService { }; } + // Add a custom label policy for the organisation + // With this policy the private labeling can be configured (colors, etc.) rpc AddCustomLabelPolicy(AddCustomLabelPolicyRequest) returns (AddCustomLabelPolicyResponse) { option (google.api.http) = { post: "/policies/label" @@ -1722,6 +1929,8 @@ service ManagementService { }; } + // Changes the custom label policy for the organisation + // With this policy the private labeling can be configured (colors, etc.) rpc UpdateCustomLabelPolicy(UpdateCustomLabelPolicyRequest) returns (UpdateCustomLabelPolicyResponse) { option (google.api.http) = { put: "/policies/label" @@ -1734,6 +1943,8 @@ service ManagementService { }; } + // Removes the custom label policy of the organisation + // The default policy of the IAM will trigger after rpc ResetLabelPolicyToDefault(ResetLabelPolicyToDefaultRequest) returns (ResetLabelPolicyToDefaultResponse) { option (google.api.http) = { delete: "/policies/label" @@ -1744,6 +1955,7 @@ service ManagementService { }; } + // Returns a identity provider configuration of the organisation rpc GetOrgIDPByID(GetOrgIDPByIDRequest) returns (GetOrgIDPByIDResponse) { option (google.api.http) = { get: "/idps/{id}" @@ -1754,6 +1966,8 @@ service ManagementService { }; } + // 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 rpc ListOrgIDPs(ListOrgIDPsRequest) returns (ListOrgIDPsResponse) { option (google.api.http) = { post: "/idps/_search" @@ -1765,6 +1979,8 @@ service ManagementService { }; } + // Add a new identity provider configuration in the organisation + // Provider must be OIDC compliant rpc AddOrgOIDCIDP(AddOrgOIDCIDPRequest) returns (AddOrgOIDCIDPResponse) { option (google.api.http) = { post: "/idps/oidc" @@ -1777,6 +1993,9 @@ service ManagementService { }; } + // 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 rpc DeactivateOrgIDP(DeactivateOrgIDPRequest) returns (DeactivateOrgIDPResponse) { option (google.api.http) = { post: "/idps/{idp_id}/_deactivate" @@ -1789,6 +2008,8 @@ service ManagementService { }; } + // Activate identity provider configuration + // Returns error if not deactivated rpc ReactivateOrgIDP(ReactivateOrgIDPRequest) returns (ReactivateOrgIDPResponse) { option (google.api.http) = { post: "/idps/{idp_id}/_reactivate" @@ -1801,6 +2022,8 @@ service ManagementService { }; } + // Removes identity provider configuration + // Will remove all linked providers of this configuration on the users rpc RemoveOrgIDP(RemoveOrgIDPRequest) returns (RemoveOrgIDPResponse) { option (google.api.http) = { delete: "/idps/{idp_id}" @@ -1812,6 +2035,7 @@ service ManagementService { }; } + // Change identity provider configuration of the organisation rpc UpdateOrgIDP(UpdateOrgIDPRequest) returns (UpdateOrgIDPResponse) { option (google.api.http) = { put: "/idps/{idp_id}" @@ -1824,6 +2048,7 @@ service ManagementService { }; } + // Change OIDC identity provider configuration of the organisation rpc UpdateOrgIDPOIDCConfig(UpdateOrgIDPOIDCConfigRequest) returns (UpdateOrgIDPOIDCConfigResponse) { option (google.api.http) = { put: "/idps/{idp_id}/oidc_config" @@ -1837,10 +2062,13 @@ service ManagementService { } } +//This is an empty request message HealthzRequest {} +//This is an empty response message HealthzResponse {} +//This is an empty request message GetOIDCInformationRequest {} message GetOIDCInformationResponse { @@ -1848,6 +2076,7 @@ message GetOIDCInformationResponse { string discovery_endpoint = 2; } +//This is an empty request message GetIAMRequest {} message GetIAMResponse { @@ -2285,6 +2514,7 @@ message ListUserMembershipsResponse { repeated zitadel.user.v1.Membership result = 2; } +//This is an empty request message GetMyOrgRequest {} message GetMyOrgResponse { @@ -2318,12 +2548,14 @@ message AddOrgResponse { zitadel.v1.ObjectDetails details = 2; } +//This is an empty request message DeactivateOrgRequest {} message DeactivateOrgResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ReactivateOrgRequest {} message ReactivateOrgResponse { @@ -2384,6 +2616,7 @@ message SetPrimaryOrgDomainResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ListOrgMemberRolesRequest {} message ListOrgMemberRolesResponse { @@ -2527,6 +2760,7 @@ message RemoveProjectResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ListProjectMemberRolesRequest {} message ListProjectMemberRolesResponse { @@ -3219,6 +3453,7 @@ message GetPasswordComplexityPolicyResponse { bool is_default = 2; } +//This is an empty request message GetDefaultPasswordComplexityPolicyRequest {} message GetDefaultPasswordComplexityPolicyResponse { @@ -3249,12 +3484,14 @@ message UpdateCustomPasswordComplexityPolicyResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ResetPasswordComplexityPolicyToDefaultRequest {} message ResetPasswordComplexityPolicyToDefaultResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetPasswordAgePolicyRequest {} message GetPasswordAgePolicyResponse { @@ -3262,6 +3499,7 @@ message GetPasswordAgePolicyResponse { bool is_default = 2; } +//This is an empty request message GetDefaultPasswordAgePolicyRequest {} message GetDefaultPasswordAgePolicyResponse { @@ -3286,12 +3524,14 @@ message UpdateCustomPasswordAgePolicyResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ResetPasswordAgePolicyToDefaultRequest {} message ResetPasswordAgePolicyToDefaultResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetPasswordLockoutPolicyRequest {} message GetPasswordLockoutPolicyResponse { @@ -3299,6 +3539,7 @@ message GetPasswordLockoutPolicyResponse { bool is_default = 2; } +//This is an empty request message GetDefaultPasswordLockoutPolicyRequest {} message GetDefaultPasswordLockoutPolicyResponse { @@ -3323,12 +3564,14 @@ message UpdateCustomPasswordLockoutPolicyResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ResetPasswordLockoutPolicyToDefaultRequest {} message ResetPasswordLockoutPolicyToDefaultResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message GetLabelPolicyRequest {} message GetLabelPolicyResponse { @@ -3336,6 +3579,7 @@ message GetLabelPolicyResponse { bool is_default = 2; } +//This is an empty request message GetDefaultLabelPolicyRequest {} message GetDefaultLabelPolicyResponse { @@ -3370,6 +3614,7 @@ message UpdateCustomLabelPolicyResponse { zitadel.v1.ObjectDetails details = 1; } +//This is an empty request message ResetLabelPolicyToDefaultRequest {} message ResetLabelPolicyToDefaultResponse { @@ -3487,6 +3732,7 @@ message RemoveOrgIDPRequest { string idp_id = 1 [(validate.rules).string = {min_len: 1, max_len: 200}]; } +//This is an empty response message RemoveOrgIDPResponse {} message UpdateOrgIDPRequest {