memos/proto/api/v1/idp_service.proto

115 lines
3.1 KiB
Protocol Buffer
Raw Normal View History

2024-03-30 09:58:47 +03:00
syntax = "proto3";
2024-04-27 19:44:29 +03:00
package memos.api.v1;
2024-03-30 09:58:47 +03:00
import "google/api/annotations.proto";
import "google/api/client.proto";
2024-04-27 17:02:15 +03:00
import "google/protobuf/empty.proto";
2024-03-30 09:58:47 +03:00
import "google/protobuf/field_mask.proto";
2024-04-27 19:44:29 +03:00
option go_package = "gen/api/v1";
2024-03-30 09:58:47 +03:00
service IdentityProviderService {
2024-04-16 17:33:25 +03:00
// ListIdentityProviders lists identity providers.
2024-03-30 09:58:47 +03:00
rpc ListIdentityProviders(ListIdentityProvidersRequest) returns (ListIdentityProvidersResponse) {
2024-04-27 19:44:29 +03:00
option (google.api.http) = {get: "/api/v1/identityProviders"};
2024-03-30 09:58:47 +03:00
}
2024-04-16 17:33:25 +03:00
// GetIdentityProvider gets an identity provider.
2024-04-27 17:02:15 +03:00
rpc GetIdentityProvider(GetIdentityProviderRequest) returns (IdentityProvider) {
2024-04-27 19:44:29 +03:00
option (google.api.http) = {get: "/api/v1/{name=identityProviders/*}"};
2024-03-30 09:58:47 +03:00
option (google.api.method_signature) = "name";
}
2024-04-16 17:33:25 +03:00
// CreateIdentityProvider creates an identity provider.
2024-04-27 17:02:15 +03:00
rpc CreateIdentityProvider(CreateIdentityProviderRequest) returns (IdentityProvider) {
2024-04-16 17:33:25 +03:00
option (google.api.http) = {
2024-06-19 17:07:51 +03:00
post: "/api/v1/identityProviders"
2024-04-16 17:33:25 +03:00
body: "identity_provider"
};
2024-03-30 09:58:47 +03:00
}
// UpdateIdentityProvider updates an identity provider.
2024-04-27 17:02:15 +03:00
rpc UpdateIdentityProvider(UpdateIdentityProviderRequest) returns (IdentityProvider) {
2024-03-30 09:58:47 +03:00
option (google.api.http) = {
2024-04-27 19:44:29 +03:00
patch: "/api/v1/{identity_provider.name=identityProviders/*}"
2024-03-30 09:58:47 +03:00
body: "identity_provider"
};
option (google.api.method_signature) = "identity_provider,update_mask";
}
// DeleteIdentityProvider deletes an identity provider.
2024-04-27 17:02:15 +03:00
rpc DeleteIdentityProvider(DeleteIdentityProviderRequest) returns (google.protobuf.Empty) {
2024-04-27 19:44:29 +03:00
option (google.api.http) = {delete: "/api/v1/{name=identityProviders/*}"};
2024-03-30 09:58:47 +03:00
option (google.api.method_signature) = "name";
}
}
message IdentityProvider {
// The name of the identityProvider.
// Format: identityProviders/{id}
string name = 1;
enum Type {
TYPE_UNSPECIFIED = 0;
OAUTH2 = 1;
}
Type type = 2;
string title = 3;
string identifier_filter = 4;
2024-04-12 21:55:40 +03:00
IdentityProviderConfig config = 5;
}
2024-03-30 09:58:47 +03:00
2024-04-12 21:55:40 +03:00
message IdentityProviderConfig {
oneof config {
2024-04-13 05:50:25 +03:00
OAuth2Config oauth2_config = 1;
2024-03-30 09:58:47 +03:00
}
2024-04-12 21:55:40 +03:00
}
message FieldMapping {
string identifier = 1;
string display_name = 2;
string email = 3;
}
2024-03-30 09:58:47 +03:00
2024-04-12 21:55:40 +03:00
message OAuth2Config {
string client_id = 1;
string client_secret = 2;
string auth_url = 3;
string token_url = 4;
string user_info_url = 5;
repeated string scopes = 6;
FieldMapping field_mapping = 7;
2024-03-30 09:58:47 +03:00
}
message ListIdentityProvidersRequest {}
message ListIdentityProvidersResponse {
repeated IdentityProvider identity_providers = 1;
}
message GetIdentityProviderRequest {
// The name of the identityProvider to get.
// Format: identityProviders/{id}
string name = 1;
}
message CreateIdentityProviderRequest {
// The identityProvider to create.
IdentityProvider identity_provider = 1;
}
message UpdateIdentityProviderRequest {
// The identityProvider to update.
IdentityProvider identity_provider = 1;
// The update mask applies to the resource. Only the top level fields of
// IdentityProvider are supported.
google.protobuf.FieldMask update_mask = 2;
}
message DeleteIdentityProviderRequest {
// The name of the identityProvider to delete.
// Format: identityProviders/{id}
string name = 1;
}