docs: api request descriptions (#1637)

* doc: api descriptions

* doc: management description

* doc: message validation

* doc: api descriptions

* doc: api descriptions

* doc: description

* doc: index images

* doc: design

* colors, colors and more colors

* margin

* fix comment

* doc: api descriptions

* doc: empty response

* doc: api descriptions

* fix comment

Co-authored-by: Livio Amstutz <livio.a@gmail.com>
This commit is contained in:
Fabi 2021-04-22 14:59:17 +02:00 committed by GitHub
parent 8f61117805
commit 12f128e3c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 5523 additions and 2652 deletions

View File

@ -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 ## Authentication API aka Auth
The authentication API (aka Auth API) is used for all operations on the currently logged in user. 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 | | Service | URI |
|:--------|:----------------------------------------------------------------------------------------------------------------------------| |:--------|:----------------------------------------------------------------------------------------------------------------------------|
@ -29,6 +30,7 @@ The authentication API (aka Auth API) is used for all operations on the currentl
## Management API ## 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. 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 | | Service | URI |
|:--------|:----------------------------------------------------------------------------------------------------------------------------------------------------| |:--------|:----------------------------------------------------------------------------------------------------------------------------------------------------|

File diff suppressed because it is too large Load Diff

View File

@ -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<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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 ## Enums

File diff suppressed because it is too large Load Diff

View File

@ -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 ## Enums

View File

@ -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 | - | |

View File

@ -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<br /> |
### 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<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### IDPOwnerTypeQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| owner_type | IDPOwnerType | - | enum.defined_only: true<br /> |
### 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 ## Enums

File diff suppressed because it is too large Load Diff

View File

@ -6,5 +6,87 @@ title: zitadel/member.proto
## Messages
### EmailQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| email | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### FirstNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| first_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### LastNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| last_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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<br /> |

View File

@ -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 | - | |

View File

@ -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 ## Enums

View File

@ -6,5 +6,21 @@ title: zitadel/options.proto
## Messages
### AuthOption
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| permission | string | - | |
| check_field_name | string | - | |
| feature | string | - | |

View File

@ -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<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### OrgNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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 ## Enums

View File

@ -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 ## Enums

View File

@ -6,6 +6,154 @@ title: zitadel/project.proto
## Messages
### GrantProjectNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### GrantRoleKeyQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| role_key | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### RoleKeyQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| key | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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 ## Enums

View File

@ -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<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### Email
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| email | string | - | |
| is_email_verified | bool | - | |
### EmailQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| email_address | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### FirstNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| first_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### Human
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| profile | Profile | - | |
| email | Email | - | |
| phone | Phone | - | |
### LastNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| last_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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<br /> |
### MembershipProjectGrantQuery
this query is always equals
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_grant_id | string | - | string.max_len: 200<br /> |
### MembershipProjectQuery
this query is always equals
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_id | string | - | string.max_len: 200<br /> |
### 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<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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<br /> |
### TypeQuery
UserTypeQuery is always equals
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| type | Type | - | enum.defined_only: true<br /> |
### 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<br /> |
| display_name | string | - | string.max_len: 200<br /> |
| 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<br /> |
### UserGrantEmailQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| email | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantFirstNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| first_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantLastNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| last_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantOrgDomainQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| org_domain | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantOrgNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| org_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantProjectGrantIDQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_grant_id | string | - | string.max_len: 200<br /> |
### UserGrantProjectIDQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_id | string | - | string.max_len: 200<br /> |
### UserGrantProjectNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantUserIDQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_id | string | - | string.max_len: 200<br /> |
### UserGrantUserNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantWithGrantedQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| with_granted | bool | - | |
### UserNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### 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<br /> |
| token_name | string | - | string.min_len: 1<br /> string.max_len: 200<br /> |
## Enums ## Enums

View File

@ -124,12 +124,12 @@ With the encoded JWT from the prior step, you will need to craft a POST request
curl --request POST \ curl --request POST \
--url https://api.zitadel.ch/oauth/v2/token \ --url https://api.zitadel.ch/oauth/v2/token \
--header 'Content-Type: application/x-www-form-urlencoded' \ --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 scope='openid profile email' \
--data assertion=eyJ0eXAiOiJKV1QiL... --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` * `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 * `assertion` is the encoded value of the JWT that was signed with your private key from the prior step

View File

@ -13,7 +13,8 @@ module.exports = {
title: 'ZITADEL', title: 'ZITADEL',
logo: { logo: {
alt: '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: [ items: [
{ {

View File

@ -6,7 +6,7 @@
*/ */
/* You can override the default Infima variables here. */ /* 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 { :root {
--ifm-color-primary: #556cd1; --ifm-color-primary: #556cd1;
@ -17,9 +17,19 @@
--ifm-color-primary-lighter: #788ada; --ifm-color-primary-lighter: #788ada;
--ifm-color-primary-lightest: #9aa8e4; --ifm-color-primary-lightest: #9aa8e4;
--ifm-code-font-size: 95%; --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 { .docusaurus-highlight-code-line {
background-color: rgb(72, 77, 91); background-color: rgb(72, 77, 91);
@ -29,14 +39,14 @@
} }
.get-started { .get-started {
border: 1px solid; border: 2px solid var(--get-started);
background-color: var(--ifm-font-color-base-inverse); background-color: var(--get-started);
color: var(--ifm-color-primary); color: var(--ifm-hero-text-color);
} }
.get-started:hover { .get-started:hover {
background-color: var(--ifm-color-primary); background-color: var(--get-started-bg-hover);
color: var(--ifm-font-color-base-inverse); color: var(--ifm-hero-text-color);
} }
.docs-link a { .docs-link a {
@ -47,3 +57,7 @@
.docs-link a:hover { .docs-link a:hover {
color: var(--ifm-color-primary); color: var(--ifm-color-primary);
} }
.docs-link img {
margin: 40px;
}

View File

@ -5,11 +5,13 @@ import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import useBaseUrl from '@docusaurus/useBaseUrl'; import useBaseUrl from '@docusaurus/useBaseUrl';
import styles from './styles.module.css'; import styles from './styles.module.css';
import ThemedImage from '@theme/ThemedImage';
const features = [ const features = [
{ {
title: 'Manuals', 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', link: 'docs/manuals/introduction',
description: ( description: (
<> <>
@ -19,7 +21,8 @@ const features = [
}, },
{ {
title: 'Quickstarts', 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', link: 'docs/quickstarts/introduction',
description: ( description: (
<> <>
@ -29,7 +32,8 @@ const features = [
}, },
{ {
title: 'Guides', 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', link: 'docs/guides/introduction',
description: ( description: (
<> <>
@ -39,7 +43,8 @@ const features = [
}, },
{ {
title: 'APIs', 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', link: '/docs/apis/introduction',
description: ( description: (
<> <>
@ -49,7 +54,8 @@ const features = [
}, },
{ {
title: 'Concepts', 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', link: 'docs/concepts/introduction',
description: ( description: (
<> <>
@ -59,18 +65,26 @@ const features = [
}, },
]; ];
function Feature({imageUrl, title, description, link}) { function Feature({darkImageUrl, lightImageUrl, title, description, link}) {
const imgUrl = useBaseUrl(imageUrl); const darkImgUrl = useBaseUrl(darkImageUrl);
const lightImgUrl = useBaseUrl(lightImageUrl);
return ( return (
<div className={clsx('col col--4 docs-link', styles.feature)}> <div className={clsx('col col--4 docs-link', styles.feature)}>
<Link to={useBaseUrl(link)}> <Link to={useBaseUrl(link)}>
{imgUrl && ( {darkImgUrl && lightImgUrl && (
<div className="text--center"> <div className="text--center">
<img className={styles.featureImage} src={imgUrl} alt={title} /> <ThemedImage
className={styles.featureImage}
alt={title}
sources={{
light: lightImgUrl,
dark: darkImgUrl,
}}
/>
</div> </div>
)} )}
<h3>{title}</h3> <h3 className="text--center">{title}</h3>
<p>{description}</p> <p className="text--center">{description}</p>
</Link> </Link>
</div> </div>
); );
@ -83,7 +97,7 @@ export default function Home() {
<Layout <Layout
title={`${siteConfig.title}`} title={`${siteConfig.title}`}
description="This site bundles ZITADELs Documentations"> description="This site bundles ZITADELs Documentations">
<header className={clsx('hero hero--primary', styles.heroBanner)}> <header className={clsx('hero', styles.heroBanner)}>
<div className="container"> <div className="container">
<h1 className="hero__title">{siteConfig.title}</h1> <h1 className="hero__title">{siteConfig.title}</h1>
<p className="hero__subtitle">{siteConfig.tagline}</p> <p className="hero__subtitle">{siteConfig.tagline}</p>

138
docs/static/img/index/APIs-dark.svg vendored Normal file
View File

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-577,-2459)">
<g id="APIs-dark" transform="matrix(0.132812,0,0,0.236111,577.891,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.85381,-1.04277,1.85381,1.04277,-8263.96,2758.78)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z" style="fill:rgb(90,26,68);"/>
<clipPath id="_clip3">
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z"/>
</clipPath>
<g clip-path="url(#_clip3)">
<rect x="1675.66" y="7153.64" width="287.744" height="24.741" style="fill:rgb(255,32,105);"/>
</g>
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4906.39,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(20,23,53);"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4940.1,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(20,23,53);"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4973.81,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(20,23,53);"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10758,-23868)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10918.5,-23896)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11001.5,-23834.6)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11308.3,-23910.1)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11112.1,-23920.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11209.5,-23843.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11000.2,-23932.3)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10822.4,-23924.9)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1883.74,7336.65L1883.74,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1789.08,7339.24L1789.08,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1741.91,7316.07L1741.91,7332.56L1757.89,7348.53L1757.89,7383.98" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1806.02,7316.07L1806.02,7350.02L1824.88,7368.89L1824.88,7389.18" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1825.66,7332.35L1825.66,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1858.2,7316.07L1858.2,7330.59L1852.33,7336.93L1852.33,7353.43" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1894.27,7316.07L1894.27,7324.21L1904.81,7334.75L1904.81,7368.92" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1724.97,7345.26L1724.97,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

91
docs/static/img/index/APIs-light.svg vendored Normal file
View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-577,-2652)">
<g id="APIs-light" transform="matrix(0.132812,0,0,0.236111,577.891,2652.39)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.85567,-1.04381,1.85567,1.04381,-8272.86,2760.09)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(2.02876,2.02876,-2.02876,2.02876,3550.17,904.364)">
<use xlink:href="#_Image2" x="12.416" y="4.913" width="132.968px" height="162.96px" transform="matrix(0.999757,0,0,0.999757,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z" style="fill:rgb(237,172,206);"/>
<clipPath id="_clip3">
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z"/>
</clipPath>
<g clip-path="url(#_clip3)">
<rect x="1675.66" y="7153.64" width="287.744" height="24.741" style="fill:rgb(255,32,105);"/>
</g>
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4906.39,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(230,232,249);"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4940.1,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(230,232,249);"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4973.81,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(230,232,249);"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10758,-23868)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10918.5,-23896)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11001.5,-23834.6)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11308.3,-23910.1)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11112.1,-23920.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11209.5,-23843.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11000.2,-23932.3)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10822.4,-23924.9)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1883.74,7336.65L1883.74,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1789.08,7339.24L1789.08,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1741.91,7316.07L1741.91,7332.56L1757.89,7348.53L1757.89,7383.98" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1806.02,7316.07L1806.02,7350.02L1824.88,7368.89L1824.88,7389.18" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1825.66,7332.35L1825.66,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1858.2,7316.07L1858.2,7330.59L1852.33,7336.93L1852.33,7353.43" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1894.27,7316.07L1894.27,7324.21L1904.81,7334.75L1904.81,7368.92" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1724.97,7345.26L1724.97,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="133px" height="163px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAACjCAYAAACkL90XAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFOUlEQVR4nO3dOagdVRyA8e+9PIJHwUJURKzUQsEFsdGIKB6wsDBH0riAFi6FoK2I4oZgaaEWIiKxUASRAYsUOmJQ3HDFhYAILnFDgxoTxi2JReLy/M+IQt6cufd+P3gQziHMH/Lxzn135r6AJqNpu6XaMwAs1x5Aq7zXtN1NTdsdV3OISZSp/Zq223fgj/uA54BHgadKTrvGnMPvFNO0BGRgM/B103bHjnlxo5i+Q4HDx7zgpKJo2m6pabtza8+x6FZqDwDQtN0ycAlwC7AOOL3uRIut+neKpu3OAl4HngTOqDyOqPidomm79cD9wLW1ZlC/msfHRRjEPx0ysP7LmEPUjGJ9xWtPUsnp59ozwAReU2h6JvHTh/Zr2u7lga1LS06fjDWHUUzLWQPracwhPD4UGIUCo1BgFAqMQoFRKDAKBUahwCgUGIUCo1DgvY9peXhg/fsxhzCKCSk5XVN7BvD4UA+jUGAUCoxCgVEoMAoFRqHA9ykmpGm7dwa2NpacPh5rDqOYltMG1oc+ObYmPD4UGIUCo1BgFAqMQoFRKDAKBUahwCgUGIUCo1BgFAqMQoF3SRdU03ZnAGf2bH1kFIvrYuCOnvUnPD4UGIUCo1BgFAqMQoFRKDAKBUahwDevpuXsgfWPxxzCKCak5PRK7RnA40M9jEKBUSjwNcXi2gl83rO+wygWVMnpXuDevj2PDwUrTdudM7D3ZsmpG3UaTcIK8OLA3snAthFn0UR4fCjwheaCatrubGBDz9Y2o1hcF+KDu/qvjEKBUSgwCgW+0FxcrwEP9Ky/YRQLquS0BdjSt+fxocAoFNQ8Pt4H7upZ/2rsQbRatShKTu8Dt9e6voatAJsG9raPOYgkSZKkObfUtN2dA3v3lZy+HXUajaZpu/OAC3q23l0Bbhv4e48DaxZF03br6P9f9PaUnH5aq+vqT+fT/29f9cmrTcCunq9XK84kvPehHkahwCgU1LxL+jXQ9qx/NPYgWq3mXdKtwNZa19cwjw8FRqHAKBRUe03RtN0FwN09Wx+WnK4aex79peZPH0fS/8tEDxt7EK3m8aHAKBQYhQKjUGAUCoxCgVEoMAoFRqHAKBTUfJv7ZeDynvXvxh5Eq9V8yOYz9n+MQBPj8aHAKBQYhQKjUGAUCoxCgVEoWAbeqj2EpmUZuL72EJqW5ZLTK8BDtQfRdPzxmuJmYEfNQTQdywAlpx3ATZVn0UT8/YbYI8DV9H9AZ2Y0bXci8FLfXsnp6JHHmUl//khactrL/hede+uNc1CsAEcNfOk/WPU+RcnpbeCeSrNoIvrevLoDeGHkOTQh4SGbktNvTdtdDqQK8xwM24GLaw8xy3qfvCo5bW/abiY//V1y2gU8XXuOWTb4OF7JafeYgxwsTdsdDzzTt1dyOmHkcWbSPP4XlOuB42sPMcu8S6rAKBTM4/HxBXBF7SFm2dxFUXLaCTxWe45Z5vGhwCgUzN3x0bTd0cCtfXslpxtHHmcWbZm7KIAjgBsG9ozi390GPDqPUej/2wtcX3J6EObw+JhlTdsdM7D1Tclpzxpd9hfgspLTU38sGMW0fDmwfjKwbQ2utxPYWHJ6/u+LRrG4dgPnHXiwahWjWFwPlpx+7NvwfYoFNRQEGIV6GIUCo1BgFAqMQoFRKDAKBUahwCgUGIUCo5i+3cAPY17QKKZpH/AscCVwTMlp6Jb6mvAu6bR8AGwGHis5ba81hFFMyyklp321h5jH4+NT4C7gReDXyrP8L1MIAmCp9gBr6cDv2NgAnAqcVHK6rvJIM+F36EXU4U1ZtbkAAAAASUVORK5CYII="/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 8.7 KiB

86
docs/static/img/index/Concepts-dark.svg vendored Normal file
View File

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-773,-2459)">
<g id="Concepts-dark" transform="matrix(0.132812,0,0,0.236111,773.516,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(-2.27272,-0.738088,1.31216,-1.27841,7068.26,4582.24)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(2.5088,0,0,0.660562,-13734.5,-329.992)">
<path d="M5770.65,1258.77L5688.63,1258.77L5688.63,1306.16C5688.63,1314.88 5691.95,1321.96 5696.03,1321.96L5763.26,1321.96C5767.34,1321.96 5770.65,1314.88 5770.65,1306.16L5770.65,1258.77Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.08765,0,0,0.324276,-11321.5,145.519)">
<path d="M5770.65,1258.77L5688.63,1258.77L5688.63,1306.16C5688.63,1314.88 5690.59,1321.96 5692.99,1321.96L5766.29,1321.96C5768.7,1321.96 5770.65,1314.88 5770.65,1306.16L5770.65,1258.77Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-13719.8,-1383.91)">
<path d="M5670,1274.31C5643.28,1256.77 5625.63,1226.54 5625.63,1192.21C5625.63,1138.04 5669.61,1094.06 5723.78,1094.06C5777.95,1094.06 5821.94,1138.04 5821.94,1192.21C5821.94,1226.54 5804.28,1256.77 5777.57,1274.31L5777.57,1300.95C5777.57,1313.29 5767.55,1323.31 5755.21,1323.31L5692.35,1323.31C5680.01,1323.31 5670,1313.29 5670,1300.95L5670,1274.31Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(2.01953,0,0,1.28759,-10919.3,-1261.54)">
<path d="M5699.78,1355.31L5699.78,1271.27C5699.78,1271.27 5673.35,1264.85 5673.9,1250.53L5723.78,1257.13" style="fill:none;stroke:rgb(255,32,105);stroke-width:10.46px;"/>
</g>
<g transform="matrix(-2.01953,0,0,1.28759,12199.4,-1261.54)">
<path d="M5699.78,1355.31L5699.78,1271.27C5699.78,1271.27 5673.35,1264.85 5673.9,1250.53L5723.78,1257.13" style="fill:none;stroke:rgb(255,32,105);stroke-width:10.46px;"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-773,-2653)">
<g id="Concepts-light" transform="matrix(0.132812,0,0,0.236111,773.516,2653.33)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(2.27272,0.738088,-1.31216,1.27841,-5788.2,-3861.47)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(2.48471,-1.43455,1.43455,2.48471,3216.29,1162.52)">
<use xlink:href="#_Image2" x="2.023" y="10.834" width="166.995px" height="146.995px" transform="matrix(0.999968,0,0,0.999968,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(2.5088,0,0,0.660562,-13734.5,-329.992)">
<path d="M5770.65,1258.77L5688.63,1258.77L5688.63,1306.16C5688.63,1314.88 5691.95,1321.96 5696.03,1321.96L5763.26,1321.96C5767.34,1321.96 5770.65,1314.88 5770.65,1306.16L5770.65,1258.77Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.08765,0,0,0.324276,-11321.5,145.519)">
<path d="M5770.65,1258.77L5688.63,1258.77L5688.63,1306.16C5688.63,1314.88 5690.59,1321.96 5692.99,1321.96L5766.29,1321.96C5768.7,1321.96 5770.65,1314.88 5770.65,1306.16L5770.65,1258.77Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-13719.8,-1383.91)">
<path d="M5670,1274.31C5643.28,1256.77 5625.63,1226.54 5625.63,1192.21C5625.63,1138.04 5669.61,1094.06 5723.78,1094.06C5777.95,1094.06 5821.94,1138.04 5821.94,1192.21C5821.94,1226.54 5804.28,1256.77 5777.57,1274.31L5777.57,1300.95C5777.57,1313.29 5767.55,1323.31 5755.21,1323.31L5692.35,1323.31C5680.01,1323.31 5670,1313.29 5670,1300.95L5670,1274.31Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(2.01953,0,0,1.28759,-10919.3,-1261.54)">
<path d="M5699.78,1355.31L5699.78,1271.27C5699.78,1271.27 5673.35,1264.85 5673.9,1250.53L5723.78,1257.13" style="fill:none;stroke:rgb(255,32,105);stroke-width:10.46px;"/>
</g>
<g transform="matrix(-2.01953,0,0,1.28759,12199.4,-1261.54)">
<path d="M5699.78,1355.31L5699.78,1271.27C5699.78,1271.27 5673.35,1264.85 5673.9,1250.53L5723.78,1257.13" style="fill:none;stroke:rgb(255,32,105);stroke-width:10.46px;"/>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="167px" height="147px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKcAAACTCAYAAADr/QlXAAAACXBIWXMAAA7EAAAOxAGVKw4bAAANL0lEQVR4nO2da6wV1RXHf8BV7iAPr4BSrVqrouIDjSIib+eeWGuM0/T9oWlqTFtj/KJpiCY2MTHx0SZtaWs/NLX90CYtNmYnNanx3g0oQik+EBUtFPEBgjxEReoWhUs/7BnmnHPPY86cPeecOWf9EgLM7Mfi8s9+rllrDEIilDazgAIwK/C9H7Xbnl5gTLsN6FSUNjOAQawgB4HTi16fFfjejrYY1kP0tduATkFpcxKwmFiMl9QoXgAebYVdvUzPilNpMw6YQzw6XgOcmLD6ICLOzOnZaV1pcx7w35TV9wIzAt875tAkoYyx7TYgS5Q205Q2Syu9C3xvG/BWyqZPBS5La5eQjK6a1pU2/cBC4nXj5cBnSpuBwPdMhSrDwK0NdHEA0GG9nU2aK9Qh1+JU2owFriBeN84H+suKjQcWAEMVmqgnzsPA2rDuELAx8L2RJs0WEpI7cSptvoQVYgG4DpiaoFqByuLUwDHitfcxYFNYdhhYU2XEFVpAx4tTaTOAFWE0Op6bopnBSg8D39uvtPkHsB8rSB343r60tgpu6bjdutLmROBa4tHxSprfuB0DTg18b3+T7QgtpO0jp9JmDHAp8SZmETDBYRefA+uxO2wRZ45oy8iptDmDeGT0gdMcd7GZeN34dOB7hxy3L7SAlolTaXMBcDtWkBc6bn43VohDwHDge7sdty+0gczFGU7bDwDLHDZ7CHiaUJCB72122LZQA6XNmcDkVvzMW7HmvJfmhXkU2EA8Oq4PfO/zZg0T6qO0mQIsJT4tmRk+/ylwf5ZXuJmOnEqbu4Cfp6y+lXjduCrwvY+cGSZURWlzAtYJJtqgXg2Mq1L8IeDurASa2ciptLmNxoS5D3soHq0b38nEMGEUSpuLiUfGxcDEhFWXAQa4Lwu7Mhk5lTbfB/5Up5gB1hBP1ZvEy6c1KG2+QCxGn1JH6jR8L/C9PzdtWBnOxam0+TqwgtEH5yPAi8RiXBv43mHX/QujKXOkLgAXO+7iXaAQ+N7rLht1Kk6lzWXYA28vfPQm8bpxZeB777vsT6hMkSN1tG6cB5zgsItPsLNe9H/7chaznjNxhnfgGthOvG58w1X7Qm2UNjOJp+qlwBSHzY8ALxCLcV0rZj0n4gzPMs8HtolLWWtQ2kzDijES5FmOu4gGmSHsrPeB4/br0nGOH0JllDYe1pE6EuNs3P7/FTtSDwW+96bDtlMh4uxQihypo3VjJUfqZuh4R2oRZweR0pE6KblzpBZxtpEiR+podEzjSF2Ld4iP7nLnSC3ibCGhI/V84nWjC0fqYj4CVhGvG7c6bLvliDgzpIWO1NG68bnA9446bL+tiDgdI47U7hBxNonSZhL20DsaHcWR2hEizgZR2vQBc4lHx6tx690ljtQhIs4EKG0uIh4ZlwCTHDYvjtRVEHHWQWnzE+Bhx82KI3UC2v5pcA541kEb4kidgp4UZ+hSdhWwN8Ed8gbgIDC5gS4iR+podBRH6hT0jDiVNqcA3yZ2KTsZ+1XoPbXqBb53VGmzCri5RjFxpM6AnhEnMA14pOxZgTriDBlitDgjR+rIpexA0xYKJXTNhiiMzbmAeFf9t8D3Hi4r8zalfo8jwPR6wgoDQqwDVhIf8Wx3aL5QgdyOnOHVYHFszgWUupR9yOhd9jBwS9Hfx2IdL/5eq6/A97YobaZ3mktZt5MrcSptzqbUpWxajeLzlTZemVvYEKXiJGyrpjgBRJitJzfiVNosBlY3UGU81nP8qaJn5cFidyKR5zqW3IgTe6RzGCu6pAxSJM7A9/YpbZYD27Drxi1uTRRckqsNkdJmGOvpk5TnA9+bk5U9QrbkLdXLcIIyrwG/Am7CnmcKOSVP0zrYDc0DZc92U3o1uKvlVgmZkDdxbgTexjrcRueNr7bXJEEICc83BUEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQOoy2fvJQFIowim90Z+B7L7bTJqFzaPkHbkqb84GPA997D/vB2qVFr6/HhhIUhNZ8t660uUFp83ulzVvYkNNRvKIXyooOtsIeIR84F6fSpl9pc1LZ428AtwJnh38vhL8PlZWbH2bHFYTmp/WiUIRR9Lf5wDJgeVGx8tCD1yptJoTPiwNrVQq+JfQoqcSZIBRhgdHiLBbhicCiwPeeVNq8Sum6s4CIUyChOJU2J1Oa3fa8OlWWKG36At87Aseju20CLi8qUwCexE7tA8TB/ZPEQxJ6gIriDLPbziMeHa8ExjXQ7kTgGkrTpAwTi/Ng0fN7At+7q4G2hR7huDiVNuXZbcs3NY1SoFScK4CPsSPkhii7rWSdEKrRp7R5BPgaMMNx2yWJ7QPfew54znEfQhfThzthRtlth5FQhIID+rDpTtJwCHiGMBdPL2e3FbKhD5u1NglHsdNylKXsX5LdVsgCpc104No+bBKAamwlFqNktxUyIbwVXEicU2o2sLEP2EV8bhllt42iBkt2WyEzlDY/Br6JvVUsz5Kypw/4J/AEVpAvSXZbIQuUNudgR8W/Br4XnXMvwl7uVGJPX+B7D7bEOqGnUNoMYNPyRFP1l8NXewEV/nkI+G6VJvbkLWGB0KGEt4rziS9yrqSy19sgpeKshohTSE94q3g9VnALgQkJqkXukgS+t1NpswW4oEK53XlLkiV0Fr8EfoYVaBJhAsxU2hSnFS8ePV8FfgHcCDwmI6fQDENU39DUYhB4NPzzH4F/Y28V3ysuJOIUjqO06cN6kxWAOcCNdU5vKmXUq8Uh4Gns8SUA4QeNFb8bE3H2OEqbWcSbmMXApKLXs4GXalTfCLwPTK3y/ig223Pkq7u+kVtFEWePobSZQXy84wNn1CheoIY4A98bUdqsxB6kR2wl9LcAVjdzqyji7HLCjw0XEwvykgaqF7Abnlo8Dhwh9kZzdqsoeSS7jAqBKuZhv9lKgwEG2uUQLiNnFxAGqohGxqXAyY6a9oAFWH+LliPizCnhXfU9WEGeXad4o2wn9kZr29cLIs78cgQbqMIFB4CVxN5o2x212xSy5swx4dXfzBRVDwNriUfHFwPfS/tFRGbIyJlvhkgmzmPAy8RHPGsC3zNZGuYCEWe+GQZur/JuB/Hhtw58b2/LrHKEiDPfrMLewowDPgJWEwoy8L0tbbTLCbLmzDlKm1uBzRQFqhAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEIVe01J9TaXM69hPWOYHv3dHKvoX8kak4lTYTgSXE31TPKnp9UeB7/8myfyHfOP1MI4w2cTVxzsy5wAlVihcAEWebCAN4bQt877N221INF/nWLyAOfbIEmJKw6iDw62b7F5JRJYDXIG2K5pGEtPnWvwJ8C/uPOzNl3yVprwW3JAzg1X3iBN7BZkHob6Lvydhpf20TbQgh4ZJqDrEYr6F+AK8CcHfGpqUm9YZIaXMHsDxF1U+xqa6Hgb8EvrczrQ0CKG1uAn5AugBeI8Cpge+979wwBzSz5vwtNrD89XXKHcNGwI1Cnzwb+N6nTfQrlHIZNvNzGsZiY7o/5s4cd6QWZxjV9hZsmJPysMtvUxptYn96E3sXpU0/cU7Iq4DBCjHah4H7U3ZxADglvYXZ0tRuPfC9XUqbHwJ/wEafiNJbb3NhXK+itLkTuAEbG7N4XX85dhYq5nngQ5JN6bkI4BXh5BBeaTO2k/+ReUNpsw4bkbicZYHvPVyh/ONUntpzGcArwskhvAjTOcNUFucgMEqcWOFF4txBPDLmMoBXhATyypgwJ+TUwPd2N1BtCLi3wvOFSpv+ChvKJ7DBvIa6IYBXhIgzA8KckNGt2SLsQffNDTSxHptQamLZ835s8tOSg/PA93YAv0lrb6ciUeYcoLSJrgKjq8EZZUUOYkfPxLdhSpsnsEd1AK8Rn36sCnzvf00bnQNk5EyB0mYS1o8gGh0vqlNlMtYhZl0D3SwHVmBjbe6qV7gbEXEmIMwJOZd4dJxL4z+7Ag2IM/C9pxpsv+sQcVZBaXMhpd5Wk5tschC4r8k2egpZc4YobU7DCij69UXHXWwGZkv04eT0rDiVNhOwO+lodLwUtz+PfdhddRSj3VlOyF6hZ8SptBlLeD+NFeQ8YLzDLgywhvgAfFOdXOVCHbpanEqbc4k/GVkKDDhsfgR7zx0d8TzbrgSm3UpXiVNpMxV7zhitG89x3MWbxCPjyk71g+wWci1Opc14rOdOtG68Auuj6IoPsDkho3XjGw7bFuqQK3EqbcZg3caideMCbNplV3xGqUvZC+LU0j46XpxKm7OI143XAdMdNn8MeIV43fhM4HufOGxfaIKOE6fSZgpWhNHoeL7jLnZS6lK2x3H7giM6RpxKmwHgIeAWrPuXKw5SmhNSAjnkhI4RJxw/i7wNeJDR7mJJOYJ1OYtGxw3ybXw+6ShxRoTrzN8BX01Y5XXidePqwPc+zso2oXV0pDjh+M78O1jXsWllr9+j9Grw3RabJ7SAjhVnhNJmGvAANrZPJMZX2muV0Ar+D7eLC21Ev/KIAAAAAElFTkSuQmCC"/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB

96
docs/static/img/index/Guides-dark.svg vendored Normal file
View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-384,-2459)">
<g id="Guides-dark" transform="matrix(0.132812,0,0,0.236111,384.698,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.85576,1.04386,-1.85576,1.04386,-3627,-4653.01)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(4.50376,2.53337,-4.50376,2.53337,-12009.7,-13153.9)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip3">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip3)">
<g>
<g transform="matrix(0.278536,-0.278536,0.278536,0.278536,2428.4,2198.03)">
<path d="M4667.95,1154.28L4667.95,1122.23L4609.64,1122.23L4609.64,1154.28L4580.47,1154.28C4569.66,1154.28 4560.9,1163.05 4560.9,1173.86C4560.9,1180.84 4560.9,1188.69 4560.9,1195.67C4560.9,1206.49 4569.66,1215.25 4580.47,1215.25L4609.64,1215.25L4609.64,1245.48L4479.75,1245.48L4440.92,1275.97L4479.75,1306.45L4609.64,1306.45L4609.64,1531.76L4667.95,1531.76L4667.95,1306.45L4676.21,1306.45C4687.02,1306.45 4695.78,1297.69 4695.78,1286.88C4695.78,1279.9 4695.78,1272.04 4695.78,1265.06C4695.78,1254.25 4687.02,1245.48 4676.21,1245.48L4667.95,1245.48L4667.95,1215.25L4776.93,1215.25L4815.76,1184.77L4776.93,1154.28L4667.95,1154.28Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1675.55,1782.42)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1700.99,1756.98)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1658.55,1799.42)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1683.99,1773.98)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

49
docs/static/img/index/Guides-light.svg vendored Normal file
View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-384,-2652)">
<g id="Guides-light" transform="matrix(0.132812,0,0,0.236111,384.698,2652.39)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.85567,1.04381,-1.85567,1.04381,-3626.77,-4653.48)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(2.02876,-2.02876,2.02876,2.02876,3204.08,1252.49)">
<use xlink:href="#_Image2" x="3.222" y="11.913" width="162.96px" height="132.968px" transform="matrix(0.999757,0,0,0.999757,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(4.50376,2.53337,-4.50376,2.53337,-12009.7,-13153.9)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip3">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip3)">
<g>
<g transform="matrix(0.278536,-0.278536,0.278536,0.278536,2428.4,2198.03)">
<path d="M4667.95,1154.28L4667.95,1122.23L4609.64,1122.23L4609.64,1154.28L4580.47,1154.28C4569.66,1154.28 4560.9,1163.05 4560.9,1173.86C4560.9,1180.84 4560.9,1188.69 4560.9,1195.67C4560.9,1206.49 4569.66,1215.25 4580.47,1215.25L4609.64,1215.25L4609.64,1245.48L4479.75,1245.48L4440.92,1275.97L4479.75,1306.45L4609.64,1306.45L4609.64,1531.76L4667.95,1531.76L4667.95,1306.45L4676.21,1306.45C4687.02,1306.45 4695.78,1297.69 4695.78,1286.88C4695.78,1279.9 4695.78,1272.04 4695.78,1265.06C4695.78,1254.25 4687.02,1245.48 4676.21,1245.48L4667.95,1245.48L4667.95,1215.25L4776.93,1215.25L4815.76,1184.77L4776.93,1154.28L4667.95,1154.28Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1675.55,1782.42)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1700.99,1756.98)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1658.55,1799.42)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1683.99,1773.98)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
</g>
</g>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="163px" height="133px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAACFCAYAAAA3mUirAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD40lEQVR4nO3dT4gbVRzA8W/Cgjz757KoqNWLCNZS/HPQVhdE36ko+PDgwZtoKSgI4qXg/z0peBOKiKdCKx5Wxx48FKZaUOpFlKogaIuCQrFFEbeOLMp6yMaGbDbpzCaZ7Ob7OWV+8+b3foFfEgby3jTYALK82AMcAu6osYz5FMPL3cEsLx4BFirmnEsxfLa+sjaPmboL6CfLi1ngNeDJumvR6E1kM2Z50QQeB14HZmsuR2Mycc2Y5cXttH6S99Zdi8ZrYpoxy4sZ4FXgINCsuRzVYCKaMcuLHcC7wFzdtag+tTdjlhdbgADsr7uWAS6sET8O7KyY86eK10mSJEmSJEmSJEmSJEmSJEmSJEmSJEm6pFF3AcOU5cUNlNsW5UKK4URXjvuAa7rGLaQY/h0w9y5gV4m5p8kS8FGKYanfoNoX8Q/ZHHC0xPhTwD1dsReB2BXbClwckOtR4KUSc0+bt4ED/Qa4p43GZX+WF3f3G2AzalwawKGV7Q57shk1TncCaa2TNqPG7fksL3reOG+2G5jfgdMlxn/fI3YGuKor1vdOesW5knNPqxngXuDTuguRJEmSJEmSJEmSJEmSJE2MBkCWF1cCN44g/28phl/bB1lebAeu6zi/lGI4m+XFVmBHR/yfFMMPI6hHE6z959qDtFbFDdubwDMdxw8BRzqOzwI3AfcDxzri54GrR1CPJlh72cEDtVYhAc2Vh4/3XUIojUOT1nqEzbYWRhtQE9hddxEStJrxlrqLkCRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ69dov8jyogF8A9y6zpzXphjOrTOHgCwv9gCnRjzN6RTDbQPqeAd4omTez1MMe1euvwL4u8/Yb4Hd7aeqkmJYBg6XnFAahsMphuVmV/AIsFxHNZpay8BRuPS8aQBSDD8DJ+qoSFMrX+k7ur8ZwZ9qjdf//darGd8H/hpfLZpiF4EP2gerHnqeYljM8uJmYHvFCc5XvE6rfQXsHPEc/e5y214A3iiZt+h4vUTv9/FHimGxZF5JkiRJkiRJkiRJkiRJkiRJkiSpNo3BQwbL8mIbcADYMox8E+qTFMPJyx2c5cU+4K4ep46nGFZtWZLlxbNUXwR3LMXwZcVrJ8aq1YFVpBj+zPIiB04C24aRcwLN03p/l+tB4Oke8UV675/zHHB9hboAfgE2fDP2Wjddycon82FayxKl0obWjAApho+Bx3C/HlUw1GYESDEsAE8NO682v6E3I0CK4S3glVHk1uY1lBuYNcwDPwL7RjjHOH1dcvwXwHs94t+tMf5DYLbkHG1nKl43Uf4Dm1e503YgLckAAAAASUVORK5CYII="/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

95
docs/static/img/index/Manual-dark.svg vendored Normal file
View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 170 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,0,-2459)">
<g id="Manual-dark" transform="matrix(0.132812,0,0,0.236111,0,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.60693e-16,1.47618,-2.62431,9.03898e-17,3925.31,-4882.17)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-4231.86,-5709.85)">
<rect x="1835.49" y="4165.3" width="195.649" height="271.808" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(0.220694,0,0,1.30369,458.782,-5247.44)">
<rect x="1835.49" y="4165.3" width="195.649" height="271.808" style="fill:none;stroke:rgb(255,32,105);stroke-width:13.72px;"/>
</g>
<g transform="matrix(-0.220694,1.52028e-17,-1.6859e-17,-0.077436,1153.3,895.396)">
<path d="M2031.14,3795.94L1935.32,3953.32L1835.49,3795.94L1835.49,4437.11L2031.14,4437.11L2031.14,3795.94Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(-0.220694,1.52028e-17,-1.07174e-17,-0.0492265,1232.16,770.228)">
<path d="M2031.14,3795.94L1935.32,3953.32L1835.49,3795.94L1835.49,4437.11L2031.14,4437.11L2031.14,3795.94Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-4231.86,-5709.85)">
<path d="M1859.44,4165.3L1859.44,4437.11" style="fill:none;stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(1.45989,-0.82119,1.45989,0.82119,-10806,-1022.64)">
<path d="M2983.98,4759.99C2986.3,4755.61 2989.31,4751.51 2992.99,4747.82C3012.97,4727.85 3045.35,4727.85 3065.33,4747.82L3047.24,4765.9C3037.26,4755.92 3021.06,4755.92 3011.08,4765.9C3001.1,4775.88 3001.1,4792.09 3011.08,4802.07C3021.06,4812.06 3037.26,4812.06 3047.24,4802.07L3065.33,4820.15C3045.35,4840.13 3012.97,4840.13 2992.99,4820.15C2989.31,4816.47 2986.3,4812.36 2983.98,4807.98L2983.98,4809.72L2885.04,4809.72C2876.51,4823.11 2861.54,4832 2844.51,4832C2818.01,4832 2796.49,4810.49 2796.49,4783.99C2796.49,4757.49 2818.01,4735.97 2844.51,4735.97C2861.54,4735.97 2876.51,4744.86 2885.03,4758.24L2983.98,4758.24L2983.98,4759.99ZM2844.51,4761.96C2856.66,4761.96 2866.53,4771.83 2866.53,4783.99C2866.53,4796.14 2856.66,4806.01 2844.51,4806.01C2832.35,4806.01 2822.48,4796.14 2822.48,4783.99C2822.48,4771.83 2832.35,4761.96 2844.51,4761.96Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-8227.96,-1429.82)">
<rect x="3480.14" y="1175.69" width="112.318" height="11.555" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-8227.96,-1389.79)">
<rect x="3480.14" y="1175.69" width="112.318" height="11.555" style="fill:rgb(255,32,105);"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

48
docs/static/img/index/Manual-light.svg vendored Normal file
View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 170 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,0,-2651)">
<g id="Manual-light" transform="matrix(0.132812,0,0,0.236111,0,2651.45)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.60693e-16,1.47618,-2.62431,9.03898e-17,3925.31,-4882.17)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.75681e-16,-2.8691,2.8691,1.75681e-16,3306.02,1495.75)">
<use xlink:href="#_Image2" x="1.525" y="1.965" width="164.968px" height="160.968px" transform="matrix(0.999804,0,0,0.999804,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-4231.86,-5709.85)">
<rect x="1835.49" y="4165.3" width="195.649" height="271.808" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(0.220694,0,0,1.30369,458.782,-5247.44)">
<rect x="1835.49" y="4165.3" width="195.649" height="271.808" style="fill:none;stroke:rgb(255,32,105);stroke-width:13.72px;"/>
</g>
<g transform="matrix(-0.220694,1.52028e-17,-1.6859e-17,-0.077436,1153.3,895.396)">
<path d="M2031.14,3795.94L1935.32,3953.32L1835.49,3795.94L1835.49,4437.11L2031.14,4437.11L2031.14,3795.94Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(-0.220694,1.52028e-17,-1.07174e-17,-0.0492265,1232.16,770.228)">
<path d="M2031.14,3795.94L1935.32,3953.32L1835.49,3795.94L1835.49,4437.11L2031.14,4437.11L2031.14,3795.94Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-4231.86,-5709.85)">
<path d="M1859.44,4165.3L1859.44,4437.11" style="fill:none;stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(1.45989,-0.82119,1.45989,0.82119,-10806,-1022.64)">
<path d="M2983.98,4759.99C2986.3,4755.61 2989.31,4751.51 2992.99,4747.82C3012.97,4727.85 3045.35,4727.85 3065.33,4747.82L3047.24,4765.9C3037.26,4755.92 3021.06,4755.92 3011.08,4765.9C3001.1,4775.88 3001.1,4792.09 3011.08,4802.07C3021.06,4812.06 3037.26,4812.06 3047.24,4802.07L3065.33,4820.15C3045.35,4840.13 3012.97,4840.13 2992.99,4820.15C2989.31,4816.47 2986.3,4812.36 2983.98,4807.98L2983.98,4809.72L2885.04,4809.72C2876.51,4823.11 2861.54,4832 2844.51,4832C2818.01,4832 2796.49,4810.49 2796.49,4783.99C2796.49,4757.49 2818.01,4735.97 2844.51,4735.97C2861.54,4735.97 2876.51,4744.86 2885.03,4758.24L2983.98,4758.24L2983.98,4759.99ZM2844.51,4761.96C2856.66,4761.96 2866.53,4771.83 2866.53,4783.99C2866.53,4796.14 2856.66,4806.01 2844.51,4806.01C2832.35,4806.01 2822.48,4796.14 2822.48,4783.99C2822.48,4771.83 2832.35,4761.96 2844.51,4761.96Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-8227.96,-1429.82)">
<rect x="3480.14" y="1175.69" width="112.318" height="11.555" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-8227.96,-1389.79)">
<rect x="3480.14" y="1175.69" width="112.318" height="11.555" style="fill:rgb(255,32,105);"/>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="165px" height="161px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKUAAAChCAYAAACmun/MAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAKFklEQVR4nO3db8glVR3A8e8+5m4H0lJwiyIsISFdYrcX4YKQcZRtwej4B9bKF4ZhVOLSXyMkNOtFRsVuWZBGViS+WTuRL6wctlQW3ShKIlkC2y3CImphcTv7rJG9uDOPs/eZmTv3uXfOv/l9YV/cP3LPLh/PzNw5dwakYNnCvSL0GGJsU+gBjD1buKuAzwJHgWeBJ4HfGK1eDDmukAnKCLKFuxo4AGwun/oPcAh4HPgVcNhodSrQ8LwnKCOpAWa908DTwKeMVoe9DixAgjKiZsCs2mu02u9pSEESlJElMAVllI0dpqCMtDHDFJQRN1aYgjLyxghTUCbQ2GCuhB7ArGzhzrGFOyv0OEJmtHoEuI7J95Vt7bOFu83TkAYt2pmyhHgL8EXgl8ANYz71BuOZMaNEaQu3E/gWsL329MMIzFHAjAplOTt+DriT5l0LgUn+MGPbp7wAuJn2cV0LPGQLd7a/IcVX7vuYUaE0Wv0duAI41vE2gUneMKPafFfZwr2JycHNhR1vk005eW7Ko0QJAnOecoMZLUoQmPOUE8yoUYLAnKdcYEaPEgTmPOUAMwmUIDDnKXWYyaAEgTlPKcNMCiUIzHlKFWZyKEFgzlNPmLcare71NKSZRXVGp29Gq6PImZ9e9TjzcxJ4xt+IZpckSugN80rgLT7GE3MdME8Cu41WT/gfVXvJooSZME8Au4xWf/Q5plhrgBklSEgcJbTCrEA+FWJMsVaD+W8iBQmJHug0VTv4OY8GkLZwbwU+DnxMDn7cuUarEx2vXwJcbrT6jsdhrZUNSliDuXX6ejslyIPAa4EfA3tCwLSF2wGcMlo96/uz+1aCPAhsJdDXRVmhbGoKZJV3mLZwbwceY7JP964YYU6BrPIOM/l9yq5aQAJcBLzK4zgqkOeVYzlYji2aWkBCgIXCWaMEvsd6kL8HtNHquC3c+4b+HnMKZFVUMG3htgCPsh5klVeYuaO8gTOPyiuQ/7KFuxt4kAG/YLeFu4j1IKuigWm0WgU+SiQ/rcga5dTXRdMg7yjfNuSZn6OA7Xg9JpjR/OYna5SwBvOdNIOsuhbYPcBn/w/4EJPdiLYE5lTZH33Xs4X7BPDVhpc+abT62oCfuwLcD3yw423/IJKj8tCri7KfKad6mPWnJAcFCTJjztuoUDackhwcZO2z+8BcLf8Ebw6Yly37s0e1+a4qz/xcZbS6L8Bnt23K/8Jk8/2c7zF1NWNTfpfR6s5lf+YoUYauAWaUIKtaYA4CEgRlsGowNQ0gy9e/Atwf4cHPYCBBUAathLe1vIbS9PPfBW4ivqPyHUaru4f8nJkoy3+gDxitfjjkQKRJUyCrooHpoz5H3+8BfpDi1btSqwUkTL4uOlC+nn2df0lbuE3A7eXDJC8rl1g3sR4kwHHgxvJrpeyb9X/e5cDO2mOBOWwPlH/qHQeuNFr91vtoAjUL5e0NzwnMgSpnwpt5GeboQELHgY4t3KXAHzr+2+iurJBL5b7j14Hvjw0kdKPczuQe00ld8kNKv9bNt9Hqd0SwjEkaX537lKFXi0j9soX7dAyri5bVzO+9BGbc2cLdBdxDJMvellHv04yhF35K6ytBfr72VBZnfuY69y0w46kBZFXyMOdekNED5ingYqPVXxcZmNSeLdw1TFbRt5U0zLnPpc7Yx1wFrhGQg/cT1p/5qRfNTys20oaXrjXMmKuAMVo9uoyBSd11LN6ol+SMudB6yhrMlxCQ3ssV5sKLfEuY/xWQYcoRpqw8z6DcYArKTMoJpqDMqFxgCsrMygGmoMyw1GEKykxLGaagzLhUYQrKzEsRpqAcQanBFJQjKSWYgnJEpQJTUI6sFGAKyhEWO8wVW7jrfX+oFLaGK3E0FWyh8Aqwxxbuy74/WApbzDBXmNyj8DMCc3zFCrNCCQJzlMUIcwU4p/ZYYI6w2GDWZ8oqgTnCYoLZhBIE5iiLBWYbShCYoywGmCvAix2vC8wRFhrmCrALONHxHoE5wkLCXDFaHUZgSg2Fgrl27ru8G+nPgHM73n+P0arp4vxSxvk+V37GggyBKbXlE+a6VUICU2rLF8zGpWsCU2rLB8yuW5YITKmxoWF2LvIVmFJbQ8Lsc2tlgSk1NhTMXj+HEJhSW0PAnOeWJQJTamzZMOe9ZYnAlBpbJsyN3LJEYEqNLQvmhn5iKzCltpYBc5FblghMqbFFYS56yxKBKTW2CMxl3LJEYEqNbRTmUi7bIjCltjYCc2nXEhKYUlvzwlzqBa4EptTWHDC3Lf2qawJTaqsnzJ2DXApQYEptzYC5Crxm7vt998lo9RTyYzSpoRk/RnvaaHVqEJTlhwtMqbEOmL+Aye++h/xwgSk11gLzIfB0eWnZx5Taqu1jXmq0egcMPFNWyYwptVWbMe+onvN6IX6ZMaU+eb87hMCUZhXkliUCU+oq2H10BKbUVtCbO/WAeRJ4m9HqOX+jkkLn5ei7rRlH5SeB3bGDtIXbFnoMuRUUJbTCrEA+EWZU/bKF+wjwjC3cbaHHklPR3Juxtik/i3RA3svL/4Z7jVb7Aw4pm6JBCWswz04QZJXAXEJRoUwhW7gPA9+m/d9OYC5Y8H3KBPsb3XfU2Cf7mIslM+UGsoW7GjgAbO54m8yYGyz5mdIW7tW+P9No9QhwHXC6420yY26wpFHawr0eOBxidZHAHK5kN98lyIPAxeVTQU5JyqZ8+SWJsgFklcDMoORQdoCsEpiJl+I+5RuA13W8/kpfA6kn+5jLKzmURqtf076IY7/Raq/nIa0lMJdTcpvvqoZlb0FB1pNN+WIlixLOgPlALCCrBObGSxolgC3cm41Wf+54/VbgjXLwk07Jo+yqBPmN8qEclSdStiinQFbFCvMosM1oddLboCIuuaPvPrWAhEAXPJhxVH6MycVCBWRZdjOlLdwFwJ+AroUascyYx4ArjFZHfY8l5rKbKY1W/wTeTYSXiJmaMQVkS9nNlFUx/67cFm4XcERANpctSogbptRedpvveqlf7c0W7nxbuPeHHofvskYJ6cK0hTsfeAz40djOlWePEuaC+QVPQ+qsBnJH+dSoFnGMAiX0gvkC8HN/I2quAWTVaGBmfaDTVMvBzwtMrsrxZJhRTbKF2wQcAi7reFv2pyRHM1NWNcyYUYAEMFq9BHyJka/HHN1MWVXOmAeAPTGArDf2RRyjRQlgC7fFaLUaehxNjRnmqFHG3lhhCsrI6wnzFqPVfZ6GNHijO9BJrR4/RnseeNzfiIZPZspEapkxn2eyFvNImFENk6BMqCmY60BWXxWlvo8pKBOrhPlNYFcDyH3lw6QPfgRlgtnCbTZana49roOsShamoEy8FpBVScIUlAlnC3chcATY0vG25GDKV0IJZ7Q6BlzP7HPlN3oa0lISlIk343vMQ8B7gQe9DmrBZPOdSVNfF/2UyW+PolpoIo0wW7jttnCXhB7Hov0fXvgdwYoCDXYAAAAASUVORK5CYII="/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-194,-2459)">
<g id="Quickstarts-dark" transform="matrix(0.132812,0,0,0.236111,194.124,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(2.62431,0,0,1.47618,-8679.44,-1487.96)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(4.28611,0,0,2.41094,-17754,-2432.22)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:5.27px;"/>
</g>
<g transform="matrix(3.31241,0,0,1.86323,-13113.8,-1584.1)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:6.82px;"/>
</g>
<g transform="matrix(2.65128,0,0,1.49135,-10239.1,-1570.05)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:8.52px;"/>
</g>
<g transform="matrix(1.53681e-16,1.41176,-2.5098,8.64457e-17,3897.62,-5414.72)">
<path d="M4090.42,1177.8L4195.47,1370.82L3985.38,1370.82L4090.42,1177.8Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-194,-2651)">
<g id="Quickstarts-light" transform="matrix(0.132812,0,0,0.236111,194.124,2651.45)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(2.62431,-1.61168e-32,-1.08789e-31,1.47618,-8679.41,-1487.96)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(2.8691,3.13247e-32,1.18936e-31,2.8691,3306.95,1006.69)">
<use xlink:href="#_Image2" x="1.641" y="3.965" width="160.968px" height="164.968px" transform="matrix(0.999804,0,0,0.999804,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(4.28611,0,0,2.41094,-17754,-2432.22)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:5.27px;"/>
</g>
<g transform="matrix(3.31241,0,0,1.86323,-13113.8,-1584.1)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:6.82px;"/>
</g>
<g transform="matrix(2.65128,0,0,1.49135,-10239.1,-1570.05)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:8.52px;"/>
</g>
<g transform="matrix(1.53681e-16,1.41176,-2.5098,8.64457e-17,3897.62,-5414.72)">
<path d="M4090.42,1177.8L4195.47,1370.82L3985.38,1370.82L4090.42,1177.8Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="161px" height="165px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKEAAAClCAYAAAA0wJ2gAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAJs0lEQVR4nO3dW6gdVwGH8S9tYzOtqMFbVWyjSEtrQamgIURpmBYtBDq9PEmgD2kpWk3QonnQ1l4EFa1otSAF8UBBW5+WULG1WUSomDaKjSEoVtCmffCGDYmtyxyp+rBnkjn7zJ59mzVrzcz/ewlnZnfvlexf157bmb0BFW3GujcA7wIOZ2ny79Dj8dWG0ANQ1RnrLgUOAG8GVoGngSeAh7M0+UPIsTWdEEbYGMCqfgV8LkuTn7Y3Kn+dFXoAam0zAAQ4CuxvZ0T+00wYUTMCXAF2Z2ny31YG1UJCGElDBQhCGEVDBghCGLyhAwQhDJoAjhLCQAngmYQwQAK4NiFsOQFcnxC2mABWJ4QtJYCTE8IWEsD6hNBzAjg9IfSYAM6WEHpKAGdPCD0kgPMlhA0ngPMX/UWtxrqtoccwawK4WFEjNNbtBQ4a6+4KPZZpCeDiRftxnAP8RmnR3Vma3BVoOLUJ4HJFibACYFF0EAVw+aJDWAOw6M4sTe5tazx1CWAzRbVNOAPAVeDXLQ2nNgFsrmhmwhkBXp+lyY9bGtLEBLDZokAogMMuOEIBVEERCqCCgAiNdbcC36l5iAAOpJB7x08Cf5uwTgAHVOiP48sYvcFvKi0WwIEVw45JGaIADrDgB6uzNPktsAN4AQEcZK3MhMa624AjWZo8WfOYc7M0OdXGeOoSwPbzjtBYtwf4JvAycE0dxNAJYJi8IiwBLIoWogCGyxvCCoBF0UEUwLB5QVgDsOhF4B1Zmpz08frzJIDha3zveAaAq8BNAqiKGp0JZwR4Q5Ymjzb5uoskgPHUGEIBVIvWyMexAKp5MtbtMtadtrc0QgFU85R7eQjYWSxbCqEAqnka87KvWL4wQgFU81ThZZuxbjssiFAA1TzVeNkHC+wdC6Capxm8XD7XTCiAquFWgY0zIxRAtUhZmtwP7K1YVXg5PBPCLgHM24kABstYd4ux7pLi5wqIa7xMRdhBgGRp8lXgngmrVxBAb+VeHgQOTIB4ijEvtTsmXQRYzlh3N3BnadEKAuitCi9/BnZkafL70mMuytLkWPm/m4iw6wCLShBXEEBv1XhZB3G8SoR9AVhkrLsO+JEA+mkGL8eAi7M0Wa1auQ5h3wAqvzXhZc2OibHu/cs+YVuVr8JQYWpqwhp/I7+27BO2UX4c8Kix7orQYxlqTX5inv44NtZtAk4Ar1rmCX03diD6OHBVliZR3L11KDW9yVaeCT9AtwACbAb2a0ZsL2PdR2l4k62M8ENNPKHnbmb9mRBBbLfHgGcmrFvISx3C2AACfIbR8b7xNgM3tTuUYZalyYvAVayHuLCXswCMdRuBbU08oc/y43y7WQ9xBfhU2+MZahUQl/JSzITvA85r4gmbzFh3qbHuneVlFRBX0JmQ1itBfIolvRQIt+d/RgWQ0U7IgRqIuxHAYOUQty3rZQOAse67wC7iA1jshDzP6PzjH8ONalgZ687P0uTlNl6rmAm3EC9AgAupmBGVn/LjgEeNdVvaeL0C4ZcjBlh0IfAzY90F7Y5qWJUORG9h9O+9xfdrnmWsOydLkyd8v9C0Zrwkfz+T7/ivlqziTMhFtAAx+I3TYWaA3wNu1k6In6acijsGXJmlyXM+Xjv4lSgCGL4ZzgW/BbikZv1SBUUogOGb42KEx32NIfRMuInqiyaKBNBjsVzAHBRhlibPMDrqfrxitQB6LBaAEM+OyRWM9nw354sE0GMxAYRIEMIaiAYB9FZsACEihAD5GZHnBNBPMQKEyBAqf8UKEIRwEMUMEISw98UOEISw13UBIAhhb+sKQBDCXtYlgCCEvctYdzlwhMnvbVQAIfy5Y9VwWZocBW4D/lexOjqAoJmwtxnrPgY8wJn3OEqAIIS9rgTxP0QKUA0gY92txrqd0x+plFJKKaWUUkoppZRSSnUsY909xrrt0x85veguYDDWbTTWXRt6HGpyxrqvAHcAP2kCYlQI83tnPwIYY92nQ49HrS8H+Nn8x1fTAMRoLmAoAbyutPj2LE2+HmhIaqwxgOVeAq7J0uTnizxvTDPhjawFCHCfZsQ4qgEIoxnxEWPduYs8d3CE+Tbg5ixNfgB8seIh9xnrbml7XOpMUwACnGR0qdipRZ4/9K3hio/gA8a612dpcgfrIR4Dgt9JdqjNCPDDWZo8tehrBNsmrNgG/A2QZmnyD2PdvcDn8XyHUFVfGwAh7Ez4AGu3Ad8D2NKMeDsCGKy2AELYmXDSXVpPz4jtj0pBuwAh4EyYpcnvgB3AX8dWvY7R3pYKUNsAoUWE+V7wZeVlFRCLbcBjbY1LreuFmnWNA4SWEOY7IQ8DB411W8vrShCfRtuAwcvS5NvAJytWeQEILWwTlgBeny/y9pdRzWWs+wTwrfxHr++Z15mwAiDAa4DHx2dEFVelGfEEnicNbzPhBIDlTgJXZ2lyyNcYVH35TsimLE321jzmjVma/N3nOLzMhDMAhNHXRuh76gJV2gveY6ybeAcv3wDBw0w4I0CdCQnYhMMw99fNiD5rFKEAxt+U44BBIDaGUADjz1j3WuAQcPGEh5wE3pulyZ/aG1VD24QC2I2yNDnB6JjssxWri8MwrQKEBmZCAexexrq3MjpvX8yIQY/dLoVQALtbCeIFBD55sDBCAex+OcS3ZWnyy5DjWAihAKommxuhAKqmmwuhse5s4IcIoGqweQ/RnAdcWbNeAAOWf1Vv55oLYZYm/2T0C0hVCWDA8jMhR4x1Hww9lnlb5GD1g8DhsWUCGLDSqbjzGd2Wo1MQ50aYpckrwMeB4tvZBTBgFeeCOwdxodN2WZocBL6AAAat5mKETkFc5tzxl4CtAhimGX4r7hVG3+QUfdHclUvNXohfy/SZEHasvgEEIexUfQQIQtiZ+goQhLAT9RkgCGH09R0gCGHUDQEgCGG0DQUgCGGUDQkgCGF0DQ0gCGFUDREgCGE0DRUgCGEUDRkgRPBlOm1krHt76DFMaugAYQAIjXV7gGeNdR8JPZbxBHBUrz+Oc4DFvfdOAVmWJo8FHNLpBPBMvUU4BrAoCogCuLZeIpwAsCgoRAFcX++2CacAhNH/eOe0NJw1CWB1vZoJZwC4yugrUR9taUinE8DJ9QahAHa3XiAUwG7XeYQC2P06jVAA+1FnEQpgf+okQmPdLuChmocIYIfq6nHC7wPXAr+oWCeAHauTM2E5Y912YB+wEwHsZJ1HWGSsezewMUuT8XsntvHaArhEvUEYKgFcPiFcIgFsJiFcMAFsLiFcIAFsNiGcMwFsvrNDD6BLGetuALYDzwN/AY4DLzE6NATwL+DqLE0OhRlhN/s/7AprpCEw0D8AAAAASUVORK5CYII="/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -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,
}
}

View File

@ -19,6 +19,7 @@ type LabelPolicyAddedEvent struct {
PrimaryColor string `json:"primaryColor,omitempty"` PrimaryColor string `json:"primaryColor,omitempty"`
SecondaryColor string `json:"secondaryColor,omitempty"` SecondaryColor string `json:"secondaryColor,omitempty"`
HideLoginNameSuffix bool `json:"hideLoginNameSuffix,omitempty"` HideLoginNameSuffix bool `json:"hideLoginNameSuffix,omitempty"`
LogoDarkThemeID string
} }
func (e *LabelPolicyAddedEvent) Data() interface{} { func (e *LabelPolicyAddedEvent) Data() interface{} {

View File

@ -173,6 +173,7 @@ service AdminService {
}; };
} }
// Returns an organisation by id
rpc GetOrgByID(GetOrgByIDRequest) returns (GetOrgByIDResponse) { rpc GetOrgByID(GetOrgByIDRequest) returns (GetOrgByIDResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/orgs/{id}"; get: "/orgs/{id}";
@ -199,7 +200,7 @@ service AdminService {
} }
//Returns all organisations matching the request //Returns all organisations matching the request
// all queries need to match (ANDed) // all queries need to match (AND)
rpc ListOrgs(ListOrgsRequest) returns (ListOrgsResponse) { rpc ListOrgs(ListOrgsRequest) returns (ListOrgsResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/orgs/_search"; post: "/orgs/_search";
@ -276,6 +277,7 @@ service AdminService {
}; };
} }
// Returns a identity provider configuration of the IAM
rpc GetIDPByID(GetIDPByIDRequest) returns (GetIDPByIDResponse) { rpc GetIDPByID(GetIDPByIDRequest) returns (GetIDPByIDResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/idps/{id}"; get: "/idps/{id}";
@ -311,6 +313,7 @@ service AdminService {
}; };
} }
// Returns all identity provider configurations of the IAM
rpc ListIDPs(ListIDPsRequest) returns (ListIDPsResponse) { rpc ListIDPs(ListIDPsRequest) returns (ListIDPsResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/idps/_search"; post: "/idps/_search";
@ -347,6 +350,7 @@ service AdminService {
}; };
} }
// Adds a new oidc identity provider configuration the IAM
rpc AddOIDCIDP(AddOIDCIDPRequest) returns (AddOIDCIDPResponse) { rpc AddOIDCIDP(AddOIDCIDPRequest) returns (AddOIDCIDPResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/idps/oidc"; post: "/idps/oidc";
@ -1676,8 +1680,11 @@ service AdminService {
} }
} }
//This is an empty request
message HealthzRequest {} message HealthzRequest {}
//This is an empty response
message HealthzResponse {} message HealthzResponse {}
// if name or domain is already in use, org is not unique // if name or domain is already in use, org is not unique
@ -2338,6 +2345,7 @@ message ResetCustomOrgIAMPolicyToDefaultResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message GetLabelPolicyRequest {} message GetLabelPolicyRequest {}
message GetLabelPolicyResponse { message GetLabelPolicyResponse {
@ -2380,6 +2388,7 @@ message UpdateLabelPolicyResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message GetLoginPolicyRequest {} message GetLoginPolicyRequest {}
message GetLoginPolicyResponse { message GetLoginPolicyResponse {
@ -2470,6 +2479,7 @@ message RemoveIDPFromLoginPolicyResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message ListLoginPolicySecondFactorsRequest {} message ListLoginPolicySecondFactorsRequest {}
message ListLoginPolicySecondFactorsResponse { message ListLoginPolicySecondFactorsResponse {
@ -2505,6 +2515,7 @@ message RemoveSecondFactorFromLoginPolicyResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message ListLoginPolicyMultiFactorsRequest {} message ListLoginPolicyMultiFactorsRequest {}
message ListLoginPolicyMultiFactorsResponse { message ListLoginPolicyMultiFactorsResponse {
@ -2578,6 +2589,7 @@ message UpdatePasswordComplexityPolicyResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message GetPasswordAgePolicyRequest {} message GetPasswordAgePolicyRequest {}
message GetPasswordAgePolicyResponse { message GetPasswordAgePolicyResponse {
@ -2603,6 +2615,7 @@ message UpdatePasswordAgePolicyResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message GetPasswordLockoutPolicyRequest {} message GetPasswordLockoutPolicyRequest {}
message GetPasswordLockoutPolicyResponse { message GetPasswordLockoutPolicyResponse {
@ -2692,6 +2705,7 @@ message RemoveIAMMemberResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message ListIAMMemberRolesRequest {} message ListIAMMemberRolesRequest {}
message ListIAMMemberRolesResponse { message ListIAMMemberRolesResponse {
@ -2711,6 +2725,7 @@ message ListIAMMembersResponse {
repeated zitadel.member.v1.Member result = 2; repeated zitadel.member.v1.Member result = 2;
} }
//This is an empty request
message ListViewsRequest {} message ListViewsRequest {}
message ListViewsResponse { message ListViewsResponse {
@ -2743,8 +2758,10 @@ message ClearViewRequest {
]; ];
} }
//This is an empty response
message ClearViewResponse {} message ClearViewResponse {}
//This is an empty request
message ListFailedEventsRequest {} message ListFailedEventsRequest {}
message ListFailedEventsResponse { message ListFailedEventsResponse {
@ -2782,6 +2799,7 @@ message RemoveFailedEventRequest {
]; ];
} }
//This is an empty response
message RemoveFailedEventResponse {} message RemoveFailedEventResponse {}
message View { message View {

View File

@ -49,6 +49,7 @@ service AuthService {
}; };
} }
// Returns my full blown user
rpc GetMyUser(GetMyUserRequest) returns (GetMyUserResponse) { rpc GetMyUser(GetMyUserRequest) returns (GetMyUserResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/users/me" get: "/users/me"
@ -59,6 +60,7 @@ service AuthService {
}; };
} }
// Returns the history of the authorized user (each event)
rpc ListMyUserChanges(ListMyUserChangesRequest) returns (ListMyUserChangesResponse) { rpc ListMyUserChanges(ListMyUserChangesRequest) returns (ListMyUserChangesResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/changes/_search" 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) { rpc ListMyUserSessions(ListMyUserSessionsRequest) returns (ListMyUserSessionsResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/sessions/_search" post: "/users/me/sessions/_search"
@ -79,6 +82,7 @@ service AuthService {
}; };
} }
// Change the user name of the authorize user
rpc UpdateMyUserName(UpdateMyUserNameRequest) returns (UpdateMyUserNameResponse) { rpc UpdateMyUserName(UpdateMyUserNameRequest) returns (UpdateMyUserNameResponse) {
option (google.api.http) = { option (google.api.http) = {
put: "/users/me/username" 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) { rpc GetMyPasswordComplexityPolicy(GetMyPasswordComplexityPolicyRequest) returns (GetMyPasswordComplexityPolicyResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/policies/passwords/complexity" get: "/policies/passwords/complexity"
@ -100,6 +106,7 @@ service AuthService {
}; };
} }
// Change the password of the authorized user
rpc UpdateMyPassword(UpdateMyPasswordRequest) returns (UpdateMyPasswordResponse) { rpc UpdateMyPassword(UpdateMyPasswordRequest) returns (UpdateMyPasswordResponse) {
option (google.api.http) = { option (google.api.http) = {
put: "/users/me/password" put: "/users/me/password"
@ -111,6 +118,7 @@ service AuthService {
}; };
} }
// Returns the profile information of the authorized user
rpc GetMyProfile(GetMyProfileRequest) returns (GetMyProfileResponse) { rpc GetMyProfile(GetMyProfileRequest) returns (GetMyProfileResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/users/me/profile" get: "/users/me/profile"
@ -121,6 +129,7 @@ service AuthService {
}; };
} }
// Changes the profile information of the authorized user
rpc UpdateMyProfile(UpdateMyProfileRequest) returns (UpdateMyProfileResponse) { rpc UpdateMyProfile(UpdateMyProfileRequest) returns (UpdateMyProfileResponse) {
option (google.api.http) = { option (google.api.http) = {
put: "/users/me/profile" put: "/users/me/profile"
@ -132,6 +141,7 @@ service AuthService {
}; };
} }
// Returns the email address of the authorized user
rpc GetMyEmail(GetMyEmailRequest) returns (GetMyEmailResponse) { rpc GetMyEmail(GetMyEmailRequest) returns (GetMyEmailResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/users/me/email" 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) { rpc SetMyEmail(SetMyEmailRequest) returns (SetMyEmailResponse) {
option (google.api.http) = { option (google.api.http) = {
put: "/users/me/email" put: "/users/me/email"
@ -153,6 +165,7 @@ service AuthService {
}; };
} }
// Sets the email address to verified
rpc VerifyMyEmail(VerifyMyEmailRequest) returns (VerifyMyEmailResponse) { rpc VerifyMyEmail(VerifyMyEmailRequest) returns (VerifyMyEmailResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/email/_verify" 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) { rpc ResendMyEmailVerification(ResendMyEmailVerificationRequest) returns (ResendMyEmailVerificationResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/email/_resend_verification" 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) { rpc GetMyPhone(GetMyPhoneRequest) returns (GetMyPhoneResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/users/me/phone" 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) { rpc SetMyPhone(SetMyPhoneRequest) returns (SetMyPhoneResponse) {
option (google.api.http) = { option (google.api.http) = {
put: "/users/me/phone" put: "/users/me/phone"
@ -196,6 +213,7 @@ service AuthService {
}; };
} }
// Sets the phone number to verified
rpc VerifyMyPhone(VerifyMyPhoneRequest) returns (VerifyMyPhoneResponse) { rpc VerifyMyPhone(VerifyMyPhoneRequest) returns (VerifyMyPhoneResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/phone/_verify" 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) { rpc ResendMyPhoneVerification(ResendMyPhoneVerificationRequest) returns (ResendMyPhoneVerificationResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/phone/_resend_verification" 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) { rpc RemoveMyPhone(RemoveMyPhoneRequest) returns (RemoveMyPhoneResponse) {
option (google.api.http) = { option (google.api.http) = {
delete: "/users/me/phone" 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) { rpc ListMyLinkedIDPs(ListMyLinkedIDPsRequest) returns (ListMyLinkedIDPsResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/idps/_search" 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) { rpc RemoveMyLinkedIDP(RemoveMyLinkedIDPRequest) returns (RemoveMyLinkedIDPResponse) {
option (google.api.http) = { option (google.api.http) = {
delete: "/users/me/idps/{idp_id}/{linked_user_id}" 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) { rpc ListMyAuthFactors(ListMyAuthFactorsRequest) returns (ListMyAuthFactorsResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/auth_factors/_search" 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) { rpc AddMyAuthFactorOTP(AddMyAuthFactorOTPRequest) returns (AddMyAuthFactorOTPResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/auth_factors/otp" 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) { rpc VerifyMyAuthFactorOTP(VerifyMyAuthFactorOTPRequest) returns (VerifyMyAuthFactorOTPResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/auth_factors/otp/_verify" 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) { rpc RemoveMyAuthFactorOTP(RemoveMyAuthFactorOTPRequest) returns (RemoveMyAuthFactorOTPResponse) {
option (google.api.http) = { option (google.api.http) = {
delete: "/users/me/auth_factors/otp" 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) { rpc AddMyAuthFactorU2F(AddMyAuthFactorU2FRequest) returns (AddMyAuthFactorU2FResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/auth_factors/u2f" 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) { rpc VerifyMyAuthFactorU2F(VerifyMyAuthFactorU2FRequest) returns (VerifyMyAuthFactorU2FResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/auth_factors/u2f/_verify" 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) { rpc RemoveMyAuthFactorU2F(RemoveMyAuthFactorU2FRequest) returns (RemoveMyAuthFactorU2FResponse) {
option (google.api.http) = { option (google.api.http) = {
delete: "/users/me/auth_factors/u2f/{token_id}" 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) { rpc ListMyPasswordless(ListMyPasswordlessRequest) returns (ListMyPasswordlessResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/passwordless/_search" 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) { rpc AddMyPasswordless(AddMyPasswordlessRequest) returns (AddMyPasswordlessResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/passwordless" post: "/users/me/passwordless"
@ -340,6 +374,7 @@ service AuthService {
}; };
} }
// Verifies the last added passwordless configuration
rpc VerifyMyPasswordless(VerifyMyPasswordlessRequest) returns (VerifyMyPasswordlessResponse) { rpc VerifyMyPasswordless(VerifyMyPasswordlessRequest) returns (VerifyMyPasswordlessResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/users/me/passwordless/_verify" post: "/users/me/passwordless/_verify"
@ -351,6 +386,7 @@ service AuthService {
}; };
} }
// Removes the passwordless configuration from the authorized user
rpc RemoveMyPasswordless(RemoveMyPasswordlessRequest) returns (RemoveMyPasswordlessResponse) { rpc RemoveMyPasswordless(RemoveMyPasswordlessRequest) returns (RemoveMyPasswordlessResponse) {
option (google.api.http) = { option (google.api.http) = {
delete: "/users/me/passwordless/{token_id}" 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) { rpc ListMyUserGrants(ListMyUserGrantsRequest) returns (ListMyUserGrantsResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/usergrants/me/_search" 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) { rpc ListMyProjectOrgs(ListMyProjectOrgsRequest) returns (ListMyProjectOrgsResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/global/projectorgs/_search" 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) { rpc ListMyZitadelFeatures(ListMyZitadelFeaturesRequest) returns (ListMyZitadelFeaturesResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/features/zitadel/me/_search" 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) { rpc ListMyZitadelPermissions(ListMyZitadelPermissionsRequest) returns (ListMyZitadelPermissionsResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/permissions/zitadel/me/_search" 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) { rpc ListMyProjectPermissions(ListMyProjectPermissionsRequest) returns (ListMyProjectPermissionsResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/permissions/me/_search" post: "/permissions/me/_search"
@ -413,11 +454,13 @@ service AuthService {
} }
} }
//This is an empty request
message HealthzRequest {} message HealthzRequest {}
//This is an empty response
message HealthzResponse {} message HealthzResponse {}
//GetMyUserRequest is an empty request //This is an empty request
// the request parameters are read from the token-header // the request parameters are read from the token-header
message GetMyUserRequest {} message GetMyUserRequest {}
@ -439,6 +482,7 @@ message ListMyUserChangesResponse {
repeated zitadel.change.v1.Change result = 2; repeated zitadel.change.v1.Change result = 2;
} }
//This is an empty request
message ListMyUserSessionsRequest {} message ListMyUserSessionsRequest {}
message ListMyUserSessionsResponse { message ListMyUserSessionsResponse {
@ -453,6 +497,7 @@ message UpdateMyUserNameResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message GetMyPasswordComplexityPolicyRequest {} message GetMyPasswordComplexityPolicyRequest {}
message GetMyPasswordComplexityPolicyResponse { message GetMyPasswordComplexityPolicyResponse {
@ -468,6 +513,7 @@ message UpdateMyPasswordResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message GetMyProfileRequest {} message GetMyProfileRequest {}
message GetMyProfileResponse { message GetMyProfileResponse {
@ -488,6 +534,7 @@ message UpdateMyProfileResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message GetMyEmailRequest {} message GetMyEmailRequest {}
message GetMyEmailResponse { message GetMyEmailResponse {
@ -511,12 +558,14 @@ message VerifyMyEmailResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message ResendMyEmailVerificationRequest {} message ResendMyEmailVerificationRequest {}
message ResendMyEmailVerificationResponse { message ResendMyEmailVerificationResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message GetMyPhoneRequest {} message GetMyPhoneRequest {}
message GetMyPhoneResponse { message GetMyPhoneResponse {
@ -540,12 +589,14 @@ message VerifyMyPhoneResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message ResendMyPhoneVerificationRequest {} message ResendMyPhoneVerificationRequest {}
message ResendMyPhoneVerificationResponse { message ResendMyPhoneVerificationResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message RemoveMyPhoneRequest {} message RemoveMyPhoneRequest {}
message RemoveMyPhoneResponse { message RemoveMyPhoneResponse {
@ -555,6 +606,7 @@ message RemoveMyPhoneResponse {
message ListMyLinkedIDPsRequest { message ListMyLinkedIDPsRequest {
//list limitations and ordering //list limitations and ordering
zitadel.v1.ListQuery query = 1; zitadel.v1.ListQuery query = 1;
//PLANNED: queries for idp name and login name //PLANNED: queries for idp name and login name
} }
@ -572,12 +624,14 @@ message RemoveMyLinkedIDPResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message ListMyAuthFactorsRequest {} message ListMyAuthFactorsRequest {}
message ListMyAuthFactorsResponse { message ListMyAuthFactorsResponse {
repeated zitadel.user.v1.AuthFactor result = 1; repeated zitadel.user.v1.AuthFactor result = 1;
} }
//This is an empty request
message AddMyAuthFactorU2FRequest {} message AddMyAuthFactorU2FRequest {}
message AddMyAuthFactorU2FResponse { message AddMyAuthFactorU2FResponse {
@ -585,6 +639,7 @@ message AddMyAuthFactorU2FResponse {
zitadel.v1.ObjectDetails details = 2; zitadel.v1.ObjectDetails details = 2;
} }
//This is an empty request
message AddMyAuthFactorOTPRequest {} message AddMyAuthFactorOTPRequest {}
message AddMyAuthFactorOTPResponse { message AddMyAuthFactorOTPResponse {
@ -609,6 +664,7 @@ message VerifyMyAuthFactorU2FResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message RemoveMyAuthFactorOTPRequest {} message RemoveMyAuthFactorOTPRequest {}
message RemoveMyAuthFactorOTPResponse { message RemoveMyAuthFactorOTPResponse {
@ -623,12 +679,14 @@ message RemoveMyAuthFactorU2FResponse {
zitadel.v1.ObjectDetails details = 1; zitadel.v1.ObjectDetails details = 1;
} }
//This is an empty request
message ListMyPasswordlessRequest {} message ListMyPasswordlessRequest {}
message ListMyPasswordlessResponse { message ListMyPasswordlessResponse {
repeated zitadel.user.v1.WebAuthNToken result = 1; repeated zitadel.user.v1.WebAuthNToken result = 1;
} }
//This is an empty request
message AddMyPasswordlessRequest {} message AddMyPasswordlessRequest {}
message AddMyPasswordlessResponse { message AddMyPasswordlessResponse {
@ -683,18 +741,21 @@ message ListMyProjectOrgsResponse {
repeated zitadel.org.v1.Org result = 2; repeated zitadel.org.v1.Org result = 2;
} }
//This is an empty request
message ListMyZitadelFeaturesRequest {} message ListMyZitadelFeaturesRequest {}
message ListMyZitadelFeaturesResponse { message ListMyZitadelFeaturesResponse {
repeated string result = 1; repeated string result = 1;
} }
//This is an empty request
message ListMyZitadelPermissionsRequest {} message ListMyZitadelPermissionsRequest {}
message ListMyZitadelPermissionsResponse { message ListMyZitadelPermissionsResponse {
repeated string result = 1; repeated string result = 1;
} }
//This is an empty request
message ListMyProjectPermissionsRequest {} message ListMyProjectPermissionsRequest {}
message ListMyProjectPermissionsResponse { message ListMyProjectPermissionsResponse {

View File

@ -16,7 +16,7 @@ title: {{.Name}}
{{ .Description}} {{ .Description}}
{{$httpOption := .Option "google.api.http"}} {{$httpOption := .Option "validate.rules"}}
{{range $httpOption.Rules}} {{range $httpOption.Rules}}
{{ .Method }}: {{ .Pattern }} {{ .Method }}: {{ .Pattern }}
{{end}} {{end}}
@ -25,17 +25,19 @@ title: {{.Name}}
{{end}} {{end}}
{{end}} {{end}}
{{if .HasServices}} {{if .HasMessages}}
## Messages ## Messages
{{range .Messages}} {{range .Messages}}
### {{.LongName}} ### {{.LongName}}
{{.Description}} {{.Description}}
| Field | Type | Description | {{if .HasFields}}
| ----- | ---- | ----------- | | Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
{{range .Fields -}} {{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 }}<br /> {{end}} |
{{end}}
{{end}} {{end}}
{{end}} {{end}}
{{end}} {{end}}

File diff suppressed because it is too large Load Diff