mirror of
https://github.com/zitadel/zitadel.git
synced 2025-04-23 06:21:39 +00:00

# Which Problems Are Solved We have not enough internal and external input about our ideas for the new API design. # How the Problems Are Solved We make the concepts easily accessible by publishing them in our docs and making them concise. # Additional Context - Contributes to #6305 - Replaces the PR #7821 which defines protos in more detail Only resources and settings are in the scope of this concept. A possible solution for defining the outscoped methods could for example look like this: ## ZITADELInsights query services for auditing, analytics and data synchronization. - Events - Milestones ## ZITADELOperations - Health - Failed Events - Views - Metrics (version, uptime etc.)
155 lines
4.2 KiB
Protocol Buffer
155 lines
4.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package zitadel.resources.object.v3alpha;
|
|
|
|
option go_package = "github.com/zitadel/zitadel/pkg/grpc/resources/object/v3alpha;object";
|
|
|
|
import "google/api/field_behavior.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
import "protoc-gen-openapiv2/options/annotations.proto";
|
|
import "validate/validate.proto";
|
|
|
|
import "zitadel/object/v3alpha/object.proto";
|
|
|
|
message Organization {
|
|
oneof org {
|
|
string org_id = 1;
|
|
string org_domain = 2;
|
|
}
|
|
}
|
|
|
|
message Details {
|
|
string id = 1 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"69629012906488334\"";
|
|
}
|
|
];
|
|
|
|
//sequence represents the order of events. It's always counting
|
|
//
|
|
// on read: the sequence of the last event reduced by the projection
|
|
//
|
|
// on manipulation: the timestamp of the event(s) added by the manipulation
|
|
uint64 sequence = 2 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"2\"";
|
|
}
|
|
];
|
|
//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 timestamp of the event(s) added by the manipulation
|
|
google.protobuf.Timestamp change_date = 3;
|
|
//resource_owner represents the context an object belongs to
|
|
zitadel.object.v3alpha.Owner resource_owner = 4 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"69629023906488334\"";
|
|
}
|
|
];
|
|
}
|
|
|
|
enum State {
|
|
EFFECTIVE_STATE_UNSPECIFIED = 0;
|
|
EFFECTIVE_STATE_ACTIVE = 1;
|
|
EFFECTIVE_STATE_INACTIVE = 2;
|
|
}
|
|
|
|
enum StatePolicy {
|
|
STATE_POLICY_UNSPECIFIED = 0;
|
|
STATE_POLICY_ACTIVATE = 1;
|
|
STATE_POLICY_DEACTIVATE = 2;
|
|
STATE_POLICY_INHERIT = 3;
|
|
}
|
|
|
|
message StateFilter {
|
|
// Defines the state to query for.
|
|
resources.object.v3alpha.State state = 1 [
|
|
(validate.rules).enum.defined_only = true,
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"STATE_ACTIVE\""
|
|
}
|
|
];
|
|
}
|
|
|
|
message Parent {
|
|
zitadel.object.v3alpha.Owner parent = 1;
|
|
State state = 2;
|
|
}
|
|
|
|
message ListQuery {
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {
|
|
json_schema: {
|
|
title: "General List Query"
|
|
description: "Object unspecific list filters like offset, limit and asc/desc."
|
|
}
|
|
};
|
|
uint64 offset = 1 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"0\"";
|
|
}
|
|
];
|
|
uint32 limit = 2 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "100";
|
|
description: "Maximum amount of events returned. The default is 100, the maximum is 1000. If the limit exceeds the maximum, ZITADEL throws an error.";
|
|
}
|
|
];
|
|
bool asc = 3 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "default is descending"
|
|
}
|
|
];
|
|
}
|
|
|
|
message ListDetails {
|
|
uint32 applied_limit = 1 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "100";
|
|
}
|
|
];
|
|
bool end_of_list = 2 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "true";
|
|
}
|
|
];
|
|
uint64 total_result = 3 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"2\"";
|
|
}
|
|
];
|
|
uint64 processed_sequence = 4 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"267831\"";
|
|
}
|
|
];
|
|
google.protobuf.Timestamp timestamp = 5 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "the last time the projection got updated"
|
|
}
|
|
];
|
|
}
|
|
|
|
enum TextFilterMethod {
|
|
TEXT_FILTER_METHOD_EQUALS = 0;
|
|
TEXT_FILTER_METHOD_EQUALS_IGNORE_CASE = 1;
|
|
TEXT_FILTER_METHOD_STARTS_WITH = 2;
|
|
TEXT_FILTER_METHOD_STARTS_WITH_IGNORE_CASE = 3;
|
|
TEXT_FILTER_METHOD_CONTAINS = 4;
|
|
TEXT_FILTER_METHOD_CONTAINS_IGNORE_CASE = 5;
|
|
TEXT_FILTER_METHOD_ENDS_WITH = 6;
|
|
TEXT_FILTER_METHOD_ENDS_WITH_IGNORE_CASE = 7;
|
|
}
|
|
|
|
enum ListFilterMethod {
|
|
LIST_FILTER_METHOD_IN = 0;
|
|
}
|
|
|
|
enum TimestampFilterMethod {
|
|
TIMESTAMP_Filter_METHOD_EQUALS = 0;
|
|
TIMESTAMP_Filter_METHOD_GREATER = 1;
|
|
TIMESTAMP_Filter_METHOD_GREATER_OR_EQUALS = 2;
|
|
TIMESTAMP_Filter_METHOD_LESS = 3;
|
|
TIMESTAMP_Filter_METHOD_LESS_OR_EQUALS = 4;
|
|
} |