Commit dac059a7 authored by Steven's avatar Steven

refactor: identity provider service

parent 8d8e9b3b
...@@ -4,6 +4,8 @@ package memos.api.v1; ...@@ -4,6 +4,8 @@ package memos.api.v1;
import "google/api/annotations.proto"; import "google/api/annotations.proto";
import "google/api/client.proto"; import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/empty.proto"; import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto"; import "google/protobuf/field_mask.proto";
...@@ -14,18 +16,22 @@ service IdentityProviderService { ...@@ -14,18 +16,22 @@ service IdentityProviderService {
rpc ListIdentityProviders(ListIdentityProvidersRequest) returns (ListIdentityProvidersResponse) { rpc ListIdentityProviders(ListIdentityProvidersRequest) returns (ListIdentityProvidersResponse) {
option (google.api.http) = {get: "/api/v1/identityProviders"}; option (google.api.http) = {get: "/api/v1/identityProviders"};
} }
// GetIdentityProvider gets an identity provider. // GetIdentityProvider gets an identity provider.
rpc GetIdentityProvider(GetIdentityProviderRequest) returns (IdentityProvider) { rpc GetIdentityProvider(GetIdentityProviderRequest) returns (IdentityProvider) {
option (google.api.http) = {get: "/api/v1/{name=identityProviders/*}"}; option (google.api.http) = {get: "/api/v1/{name=identityProviders/*}"};
option (google.api.method_signature) = "name"; option (google.api.method_signature) = "name";
} }
// CreateIdentityProvider creates an identity provider. // CreateIdentityProvider creates an identity provider.
rpc CreateIdentityProvider(CreateIdentityProviderRequest) returns (IdentityProvider) { rpc CreateIdentityProvider(CreateIdentityProviderRequest) returns (IdentityProvider) {
option (google.api.http) = { option (google.api.http) = {
post: "/api/v1/identityProviders" post: "/api/v1/identityProviders"
body: "identity_provider" body: "identity_provider"
}; };
option (google.api.method_signature) = "identity_provider";
} }
// UpdateIdentityProvider updates an identity provider. // UpdateIdentityProvider updates an identity provider.
rpc UpdateIdentityProvider(UpdateIdentityProviderRequest) returns (IdentityProvider) { rpc UpdateIdentityProvider(UpdateIdentityProviderRequest) returns (IdentityProvider) {
option (google.api.http) = { option (google.api.http) = {
...@@ -34,6 +40,7 @@ service IdentityProviderService { ...@@ -34,6 +40,7 @@ service IdentityProviderService {
}; };
option (google.api.method_signature) = "identity_provider,update_mask"; option (google.api.method_signature) = "identity_provider,update_mask";
} }
// DeleteIdentityProvider deletes an identity provider. // DeleteIdentityProvider deletes an identity provider.
rpc DeleteIdentityProvider(DeleteIdentityProviderRequest) returns (google.protobuf.Empty) { rpc DeleteIdentityProvider(DeleteIdentityProviderRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {delete: "/api/v1/{name=identityProviders/*}"}; option (google.api.http) = {delete: "/api/v1/{name=identityProviders/*}"};
...@@ -42,21 +49,37 @@ service IdentityProviderService { ...@@ -42,21 +49,37 @@ service IdentityProviderService {
} }
message IdentityProvider { message IdentityProvider {
// The name of the identityProvider. option (google.api.resource) = {
// Format: identityProviders/{id}, id is the system generated auto-incremented id. type: "memos.api.v1/IdentityProvider"
string name = 1; pattern: "identityProviders/{idp}"
name_field: "name"
singular: "identityProvider"
plural: "identityProviders"
};
// The resource name of the identity provider.
// Format: identityProviders/{idp}
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
// Output only. The system generated unique identifier.
string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The type of the identity provider.
Type type = 3 [(google.api.field_behavior) = REQUIRED];
// Required. The display title of the identity provider.
string title = 4 [(google.api.field_behavior) = REQUIRED];
// Optional. Filter applied to user identifiers.
string identifier_filter = 5 [(google.api.field_behavior) = OPTIONAL];
// Required. Configuration for the identity provider.
IdentityProviderConfig config = 6 [(google.api.field_behavior) = REQUIRED];
enum Type { enum Type {
TYPE_UNSPECIFIED = 0; TYPE_UNSPECIFIED = 0;
OAUTH2 = 1; OAUTH2 = 1;
} }
Type type = 2;
string title = 3;
string identifier_filter = 4;
IdentityProviderConfig config = 5;
} }
message IdentityProviderConfig { message IdentityProviderConfig {
...@@ -82,32 +105,54 @@ message OAuth2Config { ...@@ -82,32 +105,54 @@ message OAuth2Config {
FieldMapping field_mapping = 7; FieldMapping field_mapping = 7;
} }
message ListIdentityProvidersRequest {} message ListIdentityProvidersRequest {
// Optional. The maximum number of identity providers to return.
int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token for pagination.
string page_token = 2 [(google.api.field_behavior) = OPTIONAL];
}
message ListIdentityProvidersResponse { message ListIdentityProvidersResponse {
// The list of identity providers.
repeated IdentityProvider identity_providers = 1; repeated IdentityProvider identity_providers = 1;
// A token for the next page of results.
string next_page_token = 2;
} }
message GetIdentityProviderRequest { message GetIdentityProviderRequest {
// The name of the identityProvider to get. // Required. The resource name of the identity provider to get.
string name = 1; // Format: identityProviders/{idp}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {type: "memos.api.v1/IdentityProvider"}
];
} }
message CreateIdentityProviderRequest { message CreateIdentityProviderRequest {
// The identityProvider to create. // Required. The identity provider to create.
IdentityProvider identity_provider = 1; IdentityProvider identity_provider = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. The ID to use for the identity provider, which will become the final component of the resource name.
// If not provided, the system will generate one.
string identity_provider_id = 2 [(google.api.field_behavior) = OPTIONAL];
} }
message UpdateIdentityProviderRequest { message UpdateIdentityProviderRequest {
// The identityProvider to update. // Required. The identity provider to update.
IdentityProvider identity_provider = 1; IdentityProvider identity_provider = 1 [(google.api.field_behavior) = REQUIRED];
// The update mask applies to the resource. Only the top level fields of // Required. The update mask applies to the resource. Only the top level fields of
// IdentityProvider are supported. // IdentityProvider are supported.
google.protobuf.FieldMask update_mask = 2; google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
} }
message DeleteIdentityProviderRequest { message DeleteIdentityProviderRequest {
// The name of the identityProvider to delete. // Required. The resource name of the identity provider to delete.
string name = 1; // Format: identityProviders/{idp}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {type: "memos.api.v1/IdentityProvider"}
];
} }
...@@ -72,13 +72,19 @@ func (IdentityProvider_Type) EnumDescriptor() ([]byte, []int) { ...@@ -72,13 +72,19 @@ func (IdentityProvider_Type) EnumDescriptor() ([]byte, []int) {
type IdentityProvider struct { type IdentityProvider struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
// The name of the identityProvider. // The resource name of the identity provider.
// Format: identityProviders/{id}, id is the system generated auto-incremented id. // Format: identityProviders/{idp}
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Type IdentityProvider_Type `protobuf:"varint,2,opt,name=type,proto3,enum=memos.api.v1.IdentityProvider_Type" json:"type,omitempty"` // Output only. The system generated unique identifier.
Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"`
IdentifierFilter string `protobuf:"bytes,4,opt,name=identifier_filter,json=identifierFilter,proto3" json:"identifier_filter,omitempty"` // Required. The type of the identity provider.
Config *IdentityProviderConfig `protobuf:"bytes,5,opt,name=config,proto3" json:"config,omitempty"` Type IdentityProvider_Type `protobuf:"varint,3,opt,name=type,proto3,enum=memos.api.v1.IdentityProvider_Type" json:"type,omitempty"`
// Required. The display title of the identity provider.
Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"`
// Optional. Filter applied to user identifiers.
IdentifierFilter string `protobuf:"bytes,5,opt,name=identifier_filter,json=identifierFilter,proto3" json:"identifier_filter,omitempty"`
// Required. Configuration for the identity provider.
Config *IdentityProviderConfig `protobuf:"bytes,6,opt,name=config,proto3" json:"config,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
...@@ -120,6 +126,13 @@ func (x *IdentityProvider) GetName() string { ...@@ -120,6 +126,13 @@ func (x *IdentityProvider) GetName() string {
return "" return ""
} }
func (x *IdentityProvider) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *IdentityProvider) GetType() IdentityProvider_Type { func (x *IdentityProvider) GetType() IdentityProvider_Type {
if x != nil { if x != nil {
return x.Type return x.Type
...@@ -376,6 +389,10 @@ func (x *OAuth2Config) GetFieldMapping() *FieldMapping { ...@@ -376,6 +389,10 @@ func (x *OAuth2Config) GetFieldMapping() *FieldMapping {
type ListIdentityProvidersRequest struct { type ListIdentityProvidersRequest struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
// Optional. The maximum number of identity providers to return.
PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
// Optional. A page token for pagination.
PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
...@@ -410,9 +427,26 @@ func (*ListIdentityProvidersRequest) Descriptor() ([]byte, []int) { ...@@ -410,9 +427,26 @@ func (*ListIdentityProvidersRequest) Descriptor() ([]byte, []int) {
return file_api_v1_idp_service_proto_rawDescGZIP(), []int{4} return file_api_v1_idp_service_proto_rawDescGZIP(), []int{4}
} }
func (x *ListIdentityProvidersRequest) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *ListIdentityProvidersRequest) GetPageToken() string {
if x != nil {
return x.PageToken
}
return ""
}
type ListIdentityProvidersResponse struct { type ListIdentityProvidersResponse struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
// The list of identity providers.
IdentityProviders []*IdentityProvider `protobuf:"bytes,1,rep,name=identity_providers,json=identityProviders,proto3" json:"identity_providers,omitempty"` IdentityProviders []*IdentityProvider `protobuf:"bytes,1,rep,name=identity_providers,json=identityProviders,proto3" json:"identity_providers,omitempty"`
// A token for the next page of results.
NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
...@@ -454,9 +488,17 @@ func (x *ListIdentityProvidersResponse) GetIdentityProviders() []*IdentityProvid ...@@ -454,9 +488,17 @@ func (x *ListIdentityProvidersResponse) GetIdentityProviders() []*IdentityProvid
return nil return nil
} }
func (x *ListIdentityProvidersResponse) GetNextPageToken() string {
if x != nil {
return x.NextPageToken
}
return ""
}
type GetIdentityProviderRequest struct { type GetIdentityProviderRequest struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
// The name of the identityProvider to get. // Required. The resource name of the identity provider to get.
// Format: identityProviders/{idp}
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
...@@ -501,8 +543,11 @@ func (x *GetIdentityProviderRequest) GetName() string { ...@@ -501,8 +543,11 @@ func (x *GetIdentityProviderRequest) GetName() string {
type CreateIdentityProviderRequest struct { type CreateIdentityProviderRequest struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
// The identityProvider to create. // Required. The identity provider to create.
IdentityProvider *IdentityProvider `protobuf:"bytes,1,opt,name=identity_provider,json=identityProvider,proto3" json:"identity_provider,omitempty"` IdentityProvider *IdentityProvider `protobuf:"bytes,1,opt,name=identity_provider,json=identityProvider,proto3" json:"identity_provider,omitempty"`
// Optional. The ID to use for the identity provider, which will become the final component of the resource name.
// If not provided, the system will generate one.
IdentityProviderId string `protobuf:"bytes,2,opt,name=identity_provider_id,json=identityProviderId,proto3" json:"identity_provider_id,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
...@@ -544,11 +589,18 @@ func (x *CreateIdentityProviderRequest) GetIdentityProvider() *IdentityProvider ...@@ -544,11 +589,18 @@ func (x *CreateIdentityProviderRequest) GetIdentityProvider() *IdentityProvider
return nil return nil
} }
func (x *CreateIdentityProviderRequest) GetIdentityProviderId() string {
if x != nil {
return x.IdentityProviderId
}
return ""
}
type UpdateIdentityProviderRequest struct { type UpdateIdentityProviderRequest struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
// The identityProvider to update. // Required. The identity provider to update.
IdentityProvider *IdentityProvider `protobuf:"bytes,1,opt,name=identity_provider,json=identityProvider,proto3" json:"identity_provider,omitempty"` IdentityProvider *IdentityProvider `protobuf:"bytes,1,opt,name=identity_provider,json=identityProvider,proto3" json:"identity_provider,omitempty"`
// The update mask applies to the resource. Only the top level fields of // Required. The update mask applies to the resource. Only the top level fields of
// IdentityProvider are supported. // IdentityProvider are supported.
UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
...@@ -601,7 +653,8 @@ func (x *UpdateIdentityProviderRequest) GetUpdateMask() *fieldmaskpb.FieldMask { ...@@ -601,7 +653,8 @@ func (x *UpdateIdentityProviderRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
type DeleteIdentityProviderRequest struct { type DeleteIdentityProviderRequest struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
// The name of the identityProvider to delete. // Required. The resource name of the identity provider to delete.
// Format: identityProviders/{idp}
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
...@@ -648,17 +701,19 @@ var File_api_v1_idp_service_proto protoreflect.FileDescriptor ...@@ -648,17 +701,19 @@ var File_api_v1_idp_service_proto protoreflect.FileDescriptor
const file_api_v1_idp_service_proto_rawDesc = "" + const file_api_v1_idp_service_proto_rawDesc = "" +
"\n" + "\n" +
"\x18api/v1/idp_service.proto\x12\fmemos.api.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\"\x8a\x02\n" + "\x18api/v1/idp_service.proto\x12\fmemos.api.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\"\xa2\x03\n" +
"\x10IdentityProvider\x12\x12\n" + "\x10IdentityProvider\x12\x17\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x127\n" + "\x04name\x18\x01 \x01(\tB\x03\xe0A\bR\x04name\x12\x15\n" +
"\x04type\x18\x02 \x01(\x0e2#.memos.api.v1.IdentityProvider.TypeR\x04type\x12\x14\n" + "\x03uid\x18\x02 \x01(\tB\x03\xe0A\x03R\x03uid\x12<\n" +
"\x05title\x18\x03 \x01(\tR\x05title\x12+\n" + "\x04type\x18\x03 \x01(\x0e2#.memos.api.v1.IdentityProvider.TypeB\x03\xe0A\x02R\x04type\x12\x19\n" +
"\x11identifier_filter\x18\x04 \x01(\tR\x10identifierFilter\x12<\n" + "\x05title\x18\x04 \x01(\tB\x03\xe0A\x02R\x05title\x120\n" +
"\x06config\x18\x05 \x01(\v2$.memos.api.v1.IdentityProviderConfigR\x06config\"(\n" + "\x11identifier_filter\x18\x05 \x01(\tB\x03\xe0A\x01R\x10identifierFilter\x12A\n" +
"\x06config\x18\x06 \x01(\v2$.memos.api.v1.IdentityProviderConfigB\x03\xe0A\x02R\x06config\"(\n" +
"\x04Type\x12\x14\n" + "\x04Type\x12\x14\n" +
"\x10TYPE_UNSPECIFIED\x10\x00\x12\n" + "\x10TYPE_UNSPECIFIED\x10\x00\x12\n" +
"\n" + "\n" +
"\x06OAUTH2\x10\x01\"e\n" + "\x06OAUTH2\x10\x01:f\xeaAc\n" +
"\x1dmemos.api.v1/IdentityProvider\x12\x17identityProviders/{idp}\x1a\x04name*\x11identityProviders2\x10identityProvider\"e\n" +
"\x16IdentityProviderConfig\x12A\n" + "\x16IdentityProviderConfig\x12A\n" +
"\roauth2_config\x18\x01 \x01(\v2\x1a.memos.api.v1.OAuth2ConfigH\x00R\foauth2ConfigB\b\n" + "\roauth2_config\x18\x01 \x01(\v2\x1a.memos.api.v1.OAuth2ConfigH\x00R\foauth2ConfigB\b\n" +
"\x06config\"\x86\x01\n" + "\x06config\"\x86\x01\n" +
...@@ -677,24 +732,31 @@ const file_api_v1_idp_service_proto_rawDesc = "" + ...@@ -677,24 +732,31 @@ const file_api_v1_idp_service_proto_rawDesc = "" +
"\ttoken_url\x18\x04 \x01(\tR\btokenUrl\x12\"\n" + "\ttoken_url\x18\x04 \x01(\tR\btokenUrl\x12\"\n" +
"\ruser_info_url\x18\x05 \x01(\tR\vuserInfoUrl\x12\x16\n" + "\ruser_info_url\x18\x05 \x01(\tR\vuserInfoUrl\x12\x16\n" +
"\x06scopes\x18\x06 \x03(\tR\x06scopes\x12?\n" + "\x06scopes\x18\x06 \x03(\tR\x06scopes\x12?\n" +
"\rfield_mapping\x18\a \x01(\v2\x1a.memos.api.v1.FieldMappingR\ffieldMapping\"\x1e\n" + "\rfield_mapping\x18\a \x01(\v2\x1a.memos.api.v1.FieldMappingR\ffieldMapping\"d\n" +
"\x1cListIdentityProvidersRequest\"n\n" + "\x1cListIdentityProvidersRequest\x12 \n" +
"\tpage_size\x18\x01 \x01(\x05B\x03\xe0A\x01R\bpageSize\x12\"\n" +
"\n" +
"page_token\x18\x02 \x01(\tB\x03\xe0A\x01R\tpageToken\"\x96\x01\n" +
"\x1dListIdentityProvidersResponse\x12M\n" + "\x1dListIdentityProvidersResponse\x12M\n" +
"\x12identity_providers\x18\x01 \x03(\v2\x1e.memos.api.v1.IdentityProviderR\x11identityProviders\"0\n" + "\x12identity_providers\x18\x01 \x03(\v2\x1e.memos.api.v1.IdentityProviderR\x11identityProviders\x12&\n" +
"\x1aGetIdentityProviderRequest\x12\x12\n" + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"W\n" +
"\x04name\x18\x01 \x01(\tR\x04name\"l\n" + "\x1aGetIdentityProviderRequest\x129\n" +
"\x1dCreateIdentityProviderRequest\x12K\n" + "\x04name\x18\x01 \x01(\tB%\xe0A\x02\xfaA\x1f\n" +
"\x11identity_provider\x18\x01 \x01(\v2\x1e.memos.api.v1.IdentityProviderR\x10identityProvider\"\xa9\x01\n" + "\x1dmemos.api.v1/IdentityProviderR\x04name\"\xa8\x01\n" +
"\x1dUpdateIdentityProviderRequest\x12K\n" + "\x1dCreateIdentityProviderRequest\x12P\n" +
"\x11identity_provider\x18\x01 \x01(\v2\x1e.memos.api.v1.IdentityProviderR\x10identityProvider\x12;\n" + "\x11identity_provider\x18\x01 \x01(\v2\x1e.memos.api.v1.IdentityProviderB\x03\xe0A\x02R\x10identityProvider\x125\n" +
"\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskR\n" + "\x14identity_provider_id\x18\x02 \x01(\tB\x03\xe0A\x01R\x12identityProviderId\"\xb3\x01\n" +
"updateMask\"3\n" + "\x1dUpdateIdentityProviderRequest\x12P\n" +
"\x1dDeleteIdentityProviderRequest\x12\x12\n" + "\x11identity_provider\x18\x01 \x01(\v2\x1e.memos.api.v1.IdentityProviderB\x03\xe0A\x02R\x10identityProvider\x12@\n" +
"\x04name\x18\x01 \x01(\tR\x04name2\xce\x06\n" + "\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskB\x03\xe0A\x02R\n" +
"updateMask\"Z\n" +
"\x1dDeleteIdentityProviderRequest\x129\n" +
"\x04name\x18\x01 \x01(\tB%\xe0A\x02\xfaA\x1f\n" +
"\x1dmemos.api.v1/IdentityProviderR\x04name2\xe2\x06\n" +
"\x17IdentityProviderService\x12\x93\x01\n" + "\x17IdentityProviderService\x12\x93\x01\n" +
"\x15ListIdentityProviders\x12*.memos.api.v1.ListIdentityProvidersRequest\x1a+.memos.api.v1.ListIdentityProvidersResponse\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/v1/identityProviders\x12\x92\x01\n" + "\x15ListIdentityProviders\x12*.memos.api.v1.ListIdentityProvidersRequest\x1a+.memos.api.v1.ListIdentityProvidersResponse\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/v1/identityProviders\x12\x92\x01\n" +
"\x13GetIdentityProvider\x12(.memos.api.v1.GetIdentityProviderRequest\x1a\x1e.memos.api.v1.IdentityProvider\"1\xdaA\x04name\x82\xd3\xe4\x93\x02$\x12\"/api/v1/{name=identityProviders/*}\x12\x9b\x01\n" + "\x13GetIdentityProvider\x12(.memos.api.v1.GetIdentityProviderRequest\x1a\x1e.memos.api.v1.IdentityProvider\"1\xdaA\x04name\x82\xd3\xe4\x93\x02$\x12\"/api/v1/{name=identityProviders/*}\x12\xaf\x01\n" +
"\x16CreateIdentityProvider\x12+.memos.api.v1.CreateIdentityProviderRequest\x1a\x1e.memos.api.v1.IdentityProvider\"4\x82\xd3\xe4\x93\x02.:\x11identity_provider\"\x19/api/v1/identityProviders\x12\xd6\x01\n" + "\x16CreateIdentityProvider\x12+.memos.api.v1.CreateIdentityProviderRequest\x1a\x1e.memos.api.v1.IdentityProvider\"H\xdaA\x11identity_provider\x82\xd3\xe4\x93\x02.:\x11identity_provider\"\x19/api/v1/identityProviders\x12\xd6\x01\n" +
"\x16UpdateIdentityProvider\x12+.memos.api.v1.UpdateIdentityProviderRequest\x1a\x1e.memos.api.v1.IdentityProvider\"o\xdaA\x1didentity_provider,update_mask\x82\xd3\xe4\x93\x02I:\x11identity_provider24/api/v1/{identity_provider.name=identityProviders/*}\x12\x90\x01\n" + "\x16UpdateIdentityProvider\x12+.memos.api.v1.UpdateIdentityProviderRequest\x1a\x1e.memos.api.v1.IdentityProvider\"o\xdaA\x1didentity_provider,update_mask\x82\xd3\xe4\x93\x02I:\x11identity_provider24/api/v1/{identity_provider.name=identityProviders/*}\x12\x90\x01\n" +
"\x16DeleteIdentityProvider\x12+.memos.api.v1.DeleteIdentityProviderRequest\x1a\x16.google.protobuf.Empty\"1\xdaA\x04name\x82\xd3\xe4\x93\x02$*\"/api/v1/{name=identityProviders/*}B\xa7\x01\n" + "\x16DeleteIdentityProvider\x12+.memos.api.v1.DeleteIdentityProviderRequest\x1a\x16.google.protobuf.Empty\"1\xdaA\x04name\x82\xd3\xe4\x93\x02$*\"/api/v1/{name=identityProviders/*}B\xa7\x01\n" +
"\x10com.memos.api.v1B\x0fIdpServiceProtoP\x01Z0github.com/usememos/memos/proto/gen/api/v1;apiv1\xa2\x02\x03MAX\xaa\x02\fMemos.Api.V1\xca\x02\fMemos\\Api\\V1\xe2\x02\x18Memos\\Api\\V1\\GPBMetadata\xea\x02\x0eMemos::Api::V1b\x06proto3" "\x10com.memos.api.v1B\x0fIdpServiceProtoP\x01Z0github.com/usememos/memos/proto/gen/api/v1;apiv1\xa2\x02\x03MAX\xaa\x02\fMemos.Api.V1\xca\x02\fMemos\\Api\\V1\xe2\x02\x18Memos\\Api\\V1\\GPBMetadata\xea\x02\x0eMemos::Api::V1b\x06proto3"
......
...@@ -35,12 +35,20 @@ var ( ...@@ -35,12 +35,20 @@ var (
_ = metadata.Join _ = metadata.Join
) )
var filter_IdentityProviderService_ListIdentityProviders_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
func request_IdentityProviderService_ListIdentityProviders_0(ctx context.Context, marshaler runtime.Marshaler, client IdentityProviderServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { func request_IdentityProviderService_ListIdentityProviders_0(ctx context.Context, marshaler runtime.Marshaler, client IdentityProviderServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var ( var (
protoReq ListIdentityProvidersRequest protoReq ListIdentityProvidersRequest
metadata runtime.ServerMetadata metadata runtime.ServerMetadata
) )
io.Copy(io.Discard, req.Body) io.Copy(io.Discard, req.Body)
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IdentityProviderService_ListIdentityProviders_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.ListIdentityProviders(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) msg, err := client.ListIdentityProviders(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err return msg, metadata, err
} }
...@@ -50,6 +58,12 @@ func local_request_IdentityProviderService_ListIdentityProviders_0(ctx context.C ...@@ -50,6 +58,12 @@ func local_request_IdentityProviderService_ListIdentityProviders_0(ctx context.C
protoReq ListIdentityProvidersRequest protoReq ListIdentityProvidersRequest
metadata runtime.ServerMetadata metadata runtime.ServerMetadata
) )
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IdentityProviderService_ListIdentityProviders_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.ListIdentityProviders(ctx, &protoReq) msg, err := server.ListIdentityProviders(ctx, &protoReq)
return msg, metadata, err return msg, metadata, err
} }
...@@ -91,6 +105,8 @@ func local_request_IdentityProviderService_GetIdentityProvider_0(ctx context.Con ...@@ -91,6 +105,8 @@ func local_request_IdentityProviderService_GetIdentityProvider_0(ctx context.Con
return msg, metadata, err return msg, metadata, err
} }
var filter_IdentityProviderService_CreateIdentityProvider_0 = &utilities.DoubleArray{Encoding: map[string]int{"identity_provider": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
func request_IdentityProviderService_CreateIdentityProvider_0(ctx context.Context, marshaler runtime.Marshaler, client IdentityProviderServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { func request_IdentityProviderService_CreateIdentityProvider_0(ctx context.Context, marshaler runtime.Marshaler, client IdentityProviderServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var ( var (
protoReq CreateIdentityProviderRequest protoReq CreateIdentityProviderRequest
...@@ -99,6 +115,12 @@ func request_IdentityProviderService_CreateIdentityProvider_0(ctx context.Contex ...@@ -99,6 +115,12 @@ func request_IdentityProviderService_CreateIdentityProvider_0(ctx context.Contex
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.IdentityProvider); err != nil && !errors.Is(err, io.EOF) { if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.IdentityProvider); err != nil && !errors.Is(err, io.EOF) {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
} }
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IdentityProviderService_CreateIdentityProvider_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.CreateIdentityProvider(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) msg, err := client.CreateIdentityProvider(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err return msg, metadata, err
} }
...@@ -111,6 +133,12 @@ func local_request_IdentityProviderService_CreateIdentityProvider_0(ctx context. ...@@ -111,6 +133,12 @@ func local_request_IdentityProviderService_CreateIdentityProvider_0(ctx context.
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.IdentityProvider); err != nil && !errors.Is(err, io.EOF) { if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.IdentityProvider); err != nil && !errors.Is(err, io.EOF) {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
} }
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IdentityProviderService_CreateIdentityProvider_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.CreateIdentityProvider(ctx, &protoReq) msg, err := server.CreateIdentityProvider(ctx, &protoReq)
return msg, metadata, err return msg, metadata, err
} }
......
...@@ -136,6 +136,18 @@ paths: ...@@ -136,6 +136,18 @@ paths:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
$ref: '#/definitions/googlerpcStatus' $ref: '#/definitions/googlerpcStatus'
parameters:
- name: pageSize
description: Optional. The maximum number of identity providers to return.
in: query
required: false
type: integer
format: int32
- name: pageToken
description: Optional. A page token for pagination.
in: query
required: false
type: string
tags: tags:
- IdentityProviderService - IdentityProviderService
post: post:
...@@ -152,11 +164,20 @@ paths: ...@@ -152,11 +164,20 @@ paths:
$ref: '#/definitions/googlerpcStatus' $ref: '#/definitions/googlerpcStatus'
parameters: parameters:
- name: identityProvider - name: identityProvider
description: The identityProvider to create. description: Required. The identity provider to create.
in: body in: body
required: true required: true
schema: schema:
$ref: '#/definitions/apiv1IdentityProvider' $ref: '#/definitions/apiv1IdentityProvider'
required:
- identityProvider
- name: identityProviderId
description: |-
Optional. The ID to use for the identity provider, which will become the final component of the resource name.
If not provided, the system will generate one.
in: query
required: false
type: string
tags: tags:
- IdentityProviderService - IdentityProviderService
/api/v1/inboxes: /api/v1/inboxes:
...@@ -722,28 +743,41 @@ paths: ...@@ -722,28 +743,41 @@ paths:
parameters: parameters:
- name: identityProvider.name - name: identityProvider.name
description: |- description: |-
The name of the identityProvider. The resource name of the identity provider.
Format: identityProviders/{id}, id is the system generated auto-incremented id. Format: identityProviders/{idp}
in: path in: path
required: true required: true
type: string type: string
pattern: identityProviders/[^/]+ pattern: identityProviders/[^/]+
- name: identityProvider - name: identityProvider
description: The identityProvider to update. description: Required. The identity provider to update.
in: body in: body
required: true required: true
schema: schema:
type: object type: object
properties: properties:
uid:
type: string
description: Output only. The system generated unique identifier.
readOnly: true
type: type:
$ref: '#/definitions/apiv1IdentityProviderType' $ref: '#/definitions/apiv1IdentityProviderType'
description: Required. The type of the identity provider.
title: title:
type: string type: string
description: Required. The display title of the identity provider.
identifierFilter: identifierFilter:
type: string type: string
description: Optional. Filter applied to user identifiers.
config: config:
$ref: '#/definitions/apiv1IdentityProviderConfig' $ref: '#/definitions/apiv1IdentityProviderConfig'
title: The identityProvider to update. description: Required. Configuration for the identity provider.
title: Required. The identity provider to update.
required:
- type
- title
- config
- identityProvider
tags: tags:
- IdentityProviderService - IdentityProviderService
/api/v1/{inbox.name}: /api/v1/{inbox.name}:
...@@ -965,7 +999,9 @@ paths: ...@@ -965,7 +999,9 @@ paths:
$ref: '#/definitions/googlerpcStatus' $ref: '#/definitions/googlerpcStatus'
parameters: parameters:
- name: name_2 - name: name_2
description: The name of the identityProvider to get. description: |-
Required. The resource name of the identity provider to get.
Format: identityProviders/{idp}
in: path in: path
required: true required: true
type: string type: string
...@@ -987,7 +1023,9 @@ paths: ...@@ -987,7 +1023,9 @@ paths:
$ref: '#/definitions/googlerpcStatus' $ref: '#/definitions/googlerpcStatus'
parameters: parameters:
- name: name_2 - name: name_2
description: The name of the identityProvider to delete. description: |-
Required. The resource name of the identity provider to delete.
Format: identityProviders/{idp}
in: path in: path
required: true required: true
type: string type: string
...@@ -2394,17 +2432,29 @@ definitions: ...@@ -2394,17 +2432,29 @@ definitions:
properties: properties:
name: name:
type: string type: string
description: |- title: |-
The name of the identityProvider. The resource name of the identity provider.
Format: identityProviders/{id}, id is the system generated auto-incremented id. Format: identityProviders/{idp}
uid:
type: string
description: Output only. The system generated unique identifier.
readOnly: true
type: type:
$ref: '#/definitions/apiv1IdentityProviderType' $ref: '#/definitions/apiv1IdentityProviderType'
description: Required. The type of the identity provider.
title: title:
type: string type: string
description: Required. The display title of the identity provider.
identifierFilter: identifierFilter:
type: string type: string
description: Optional. Filter applied to user identifiers.
config: config:
$ref: '#/definitions/apiv1IdentityProviderConfig' $ref: '#/definitions/apiv1IdentityProviderConfig'
description: Required. Configuration for the identity provider.
required:
- type
- title
- config
apiv1IdentityProviderConfig: apiv1IdentityProviderConfig:
type: object type: object
properties: properties:
...@@ -3036,6 +3086,10 @@ definitions: ...@@ -3036,6 +3086,10 @@ definitions:
items: items:
type: object type: object
$ref: '#/definitions/apiv1IdentityProvider' $ref: '#/definitions/apiv1IdentityProvider'
description: The list of identity providers.
nextPageToken:
type: string
description: A token for the next page of results.
v1ListInboxesResponse: v1ListInboxesResponse:
type: object type: object
properties: properties:
......
...@@ -106,6 +106,7 @@ func (s *APIV1Service) DeleteIdentityProvider(ctx context.Context, request *v1pb ...@@ -106,6 +106,7 @@ func (s *APIV1Service) DeleteIdentityProvider(ctx context.Context, request *v1pb
func convertIdentityProviderFromStore(identityProvider *storepb.IdentityProvider) *v1pb.IdentityProvider { func convertIdentityProviderFromStore(identityProvider *storepb.IdentityProvider) *v1pb.IdentityProvider {
temp := &v1pb.IdentityProvider{ temp := &v1pb.IdentityProvider{
Name: fmt.Sprintf("%s%d", IdentityProviderNamePrefix, identityProvider.Id), Name: fmt.Sprintf("%s%d", IdentityProviderNamePrefix, identityProvider.Id),
Uid: fmt.Sprintf("%d", identityProvider.Id),
Title: identityProvider.Name, Title: identityProvider.Name,
IdentifierFilter: identityProvider.IdentifierFilter, IdentifierFilter: identityProvider.IdentifierFilter,
Type: v1pb.IdentityProvider_Type(v1pb.IdentityProvider_Type_value[identityProvider.Type.String()]), Type: v1pb.IdentityProvider_Type(v1pb.IdentityProvider_Type_value[identityProvider.Type.String()]),
......
...@@ -12,6 +12,7 @@ import { generateDialog } from "./Dialog"; ...@@ -12,6 +12,7 @@ import { generateDialog } from "./Dialog";
const templateList: IdentityProvider[] = [ const templateList: IdentityProvider[] = [
{ {
name: "", name: "",
uid: "",
title: "GitHub", title: "GitHub",
type: IdentityProvider_Type.OAUTH2, type: IdentityProvider_Type.OAUTH2,
identifierFilter: "", identifierFilter: "",
...@@ -33,6 +34,7 @@ const templateList: IdentityProvider[] = [ ...@@ -33,6 +34,7 @@ const templateList: IdentityProvider[] = [
}, },
{ {
name: "", name: "",
uid: "",
title: "GitLab", title: "GitLab",
type: IdentityProvider_Type.OAUTH2, type: IdentityProvider_Type.OAUTH2,
identifierFilter: "", identifierFilter: "",
...@@ -54,6 +56,7 @@ const templateList: IdentityProvider[] = [ ...@@ -54,6 +56,7 @@ const templateList: IdentityProvider[] = [
}, },
{ {
name: "", name: "",
uid: "",
title: "Google", title: "Google",
type: IdentityProvider_Type.OAUTH2, type: IdentityProvider_Type.OAUTH2,
identifierFilter: "", identifierFilter: "",
...@@ -75,6 +78,7 @@ const templateList: IdentityProvider[] = [ ...@@ -75,6 +78,7 @@ const templateList: IdentityProvider[] = [
}, },
{ {
name: "", name: "",
uid: "",
title: "Custom", title: "Custom",
type: IdentityProvider_Type.OAUTH2, type: IdentityProvider_Type.OAUTH2,
identifierFilter: "", identifierFilter: "",
......
...@@ -13,13 +13,19 @@ export const protobufPackage = "memos.api.v1"; ...@@ -13,13 +13,19 @@ export const protobufPackage = "memos.api.v1";
export interface IdentityProvider { export interface IdentityProvider {
/** /**
* The name of the identityProvider. * The resource name of the identity provider.
* Format: identityProviders/{id}, id is the system generated auto-incremented id. * Format: identityProviders/{idp}
*/ */
name: string; name: string;
/** Output only. The system generated unique identifier. */
uid: string;
/** Required. The type of the identity provider. */
type: IdentityProvider_Type; type: IdentityProvider_Type;
/** Required. The display title of the identity provider. */
title: string; title: string;
/** Optional. Filter applied to user identifiers. */
identifierFilter: string; identifierFilter: string;
/** Required. Configuration for the identity provider. */
config?: IdentityProviderConfig | undefined; config?: IdentityProviderConfig | undefined;
} }
...@@ -78,41 +84,68 @@ export interface OAuth2Config { ...@@ -78,41 +84,68 @@ export interface OAuth2Config {
} }
export interface ListIdentityProvidersRequest { export interface ListIdentityProvidersRequest {
/** Optional. The maximum number of identity providers to return. */
pageSize: number;
/** Optional. A page token for pagination. */
pageToken: string;
} }
export interface ListIdentityProvidersResponse { export interface ListIdentityProvidersResponse {
/** The list of identity providers. */
identityProviders: IdentityProvider[]; identityProviders: IdentityProvider[];
/** A token for the next page of results. */
nextPageToken: string;
} }
export interface GetIdentityProviderRequest { export interface GetIdentityProviderRequest {
/** The name of the identityProvider to get. */ /**
* Required. The resource name of the identity provider to get.
* Format: identityProviders/{idp}
*/
name: string; name: string;
} }
export interface CreateIdentityProviderRequest { export interface CreateIdentityProviderRequest {
/** The identityProvider to create. */ /** Required. The identity provider to create. */
identityProvider?: IdentityProvider | undefined; identityProvider?:
| IdentityProvider
| undefined;
/**
* Optional. The ID to use for the identity provider, which will become the final component of the resource name.
* If not provided, the system will generate one.
*/
identityProviderId: string;
} }
export interface UpdateIdentityProviderRequest { export interface UpdateIdentityProviderRequest {
/** The identityProvider to update. */ /** Required. The identity provider to update. */
identityProvider?: identityProvider?:
| IdentityProvider | IdentityProvider
| undefined; | undefined;
/** /**
* The update mask applies to the resource. Only the top level fields of * Required. The update mask applies to the resource. Only the top level fields of
* IdentityProvider are supported. * IdentityProvider are supported.
*/ */
updateMask?: string[] | undefined; updateMask?: string[] | undefined;
} }
export interface DeleteIdentityProviderRequest { export interface DeleteIdentityProviderRequest {
/** The name of the identityProvider to delete. */ /**
* Required. The resource name of the identity provider to delete.
* Format: identityProviders/{idp}
*/
name: string; name: string;
} }
function createBaseIdentityProvider(): IdentityProvider { function createBaseIdentityProvider(): IdentityProvider {
return { name: "", type: IdentityProvider_Type.TYPE_UNSPECIFIED, title: "", identifierFilter: "", config: undefined }; return {
name: "",
uid: "",
type: IdentityProvider_Type.TYPE_UNSPECIFIED,
title: "",
identifierFilter: "",
config: undefined,
};
} }
export const IdentityProvider: MessageFns<IdentityProvider> = { export const IdentityProvider: MessageFns<IdentityProvider> = {
...@@ -120,17 +153,20 @@ export const IdentityProvider: MessageFns<IdentityProvider> = { ...@@ -120,17 +153,20 @@ export const IdentityProvider: MessageFns<IdentityProvider> = {
if (message.name !== "") { if (message.name !== "") {
writer.uint32(10).string(message.name); writer.uint32(10).string(message.name);
} }
if (message.uid !== "") {
writer.uint32(18).string(message.uid);
}
if (message.type !== IdentityProvider_Type.TYPE_UNSPECIFIED) { if (message.type !== IdentityProvider_Type.TYPE_UNSPECIFIED) {
writer.uint32(16).int32(identityProvider_TypeToNumber(message.type)); writer.uint32(24).int32(identityProvider_TypeToNumber(message.type));
} }
if (message.title !== "") { if (message.title !== "") {
writer.uint32(26).string(message.title); writer.uint32(34).string(message.title);
} }
if (message.identifierFilter !== "") { if (message.identifierFilter !== "") {
writer.uint32(34).string(message.identifierFilter); writer.uint32(42).string(message.identifierFilter);
} }
if (message.config !== undefined) { if (message.config !== undefined) {
IdentityProviderConfig.encode(message.config, writer.uint32(42).fork()).join(); IdentityProviderConfig.encode(message.config, writer.uint32(50).fork()).join();
} }
return writer; return writer;
}, },
...@@ -151,19 +187,19 @@ export const IdentityProvider: MessageFns<IdentityProvider> = { ...@@ -151,19 +187,19 @@ export const IdentityProvider: MessageFns<IdentityProvider> = {
continue; continue;
} }
case 2: { case 2: {
if (tag !== 16) { if (tag !== 18) {
break; break;
} }
message.type = identityProvider_TypeFromJSON(reader.int32()); message.uid = reader.string();
continue; continue;
} }
case 3: { case 3: {
if (tag !== 26) { if (tag !== 24) {
break; break;
} }
message.title = reader.string(); message.type = identityProvider_TypeFromJSON(reader.int32());
continue; continue;
} }
case 4: { case 4: {
...@@ -171,7 +207,7 @@ export const IdentityProvider: MessageFns<IdentityProvider> = { ...@@ -171,7 +207,7 @@ export const IdentityProvider: MessageFns<IdentityProvider> = {
break; break;
} }
message.identifierFilter = reader.string(); message.title = reader.string();
continue; continue;
} }
case 5: { case 5: {
...@@ -179,6 +215,14 @@ export const IdentityProvider: MessageFns<IdentityProvider> = { ...@@ -179,6 +215,14 @@ export const IdentityProvider: MessageFns<IdentityProvider> = {
break; break;
} }
message.identifierFilter = reader.string();
continue;
}
case 6: {
if (tag !== 50) {
break;
}
message.config = IdentityProviderConfig.decode(reader, reader.uint32()); message.config = IdentityProviderConfig.decode(reader, reader.uint32());
continue; continue;
} }
...@@ -197,6 +241,7 @@ export const IdentityProvider: MessageFns<IdentityProvider> = { ...@@ -197,6 +241,7 @@ export const IdentityProvider: MessageFns<IdentityProvider> = {
fromPartial(object: DeepPartial<IdentityProvider>): IdentityProvider { fromPartial(object: DeepPartial<IdentityProvider>): IdentityProvider {
const message = createBaseIdentityProvider(); const message = createBaseIdentityProvider();
message.name = object.name ?? ""; message.name = object.name ?? "";
message.uid = object.uid ?? "";
message.type = object.type ?? IdentityProvider_Type.TYPE_UNSPECIFIED; message.type = object.type ?? IdentityProvider_Type.TYPE_UNSPECIFIED;
message.title = object.title ?? ""; message.title = object.title ?? "";
message.identifierFilter = object.identifierFilter ?? ""; message.identifierFilter = object.identifierFilter ?? "";
...@@ -466,11 +511,17 @@ export const OAuth2Config: MessageFns<OAuth2Config> = { ...@@ -466,11 +511,17 @@ export const OAuth2Config: MessageFns<OAuth2Config> = {
}; };
function createBaseListIdentityProvidersRequest(): ListIdentityProvidersRequest { function createBaseListIdentityProvidersRequest(): ListIdentityProvidersRequest {
return {}; return { pageSize: 0, pageToken: "" };
} }
export const ListIdentityProvidersRequest: MessageFns<ListIdentityProvidersRequest> = { export const ListIdentityProvidersRequest: MessageFns<ListIdentityProvidersRequest> = {
encode(_: ListIdentityProvidersRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { encode(message: ListIdentityProvidersRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.pageSize !== 0) {
writer.uint32(8).int32(message.pageSize);
}
if (message.pageToken !== "") {
writer.uint32(18).string(message.pageToken);
}
return writer; return writer;
}, },
...@@ -481,6 +532,22 @@ export const ListIdentityProvidersRequest: MessageFns<ListIdentityProvidersReque ...@@ -481,6 +532,22 @@ export const ListIdentityProvidersRequest: MessageFns<ListIdentityProvidersReque
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
switch (tag >>> 3) { switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
break;
}
message.pageSize = reader.int32();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.pageToken = reader.string();
continue;
}
} }
if ((tag & 7) === 4 || tag === 0) { if ((tag & 7) === 4 || tag === 0) {
break; break;
...@@ -493,14 +560,16 @@ export const ListIdentityProvidersRequest: MessageFns<ListIdentityProvidersReque ...@@ -493,14 +560,16 @@ export const ListIdentityProvidersRequest: MessageFns<ListIdentityProvidersReque
create(base?: DeepPartial<ListIdentityProvidersRequest>): ListIdentityProvidersRequest { create(base?: DeepPartial<ListIdentityProvidersRequest>): ListIdentityProvidersRequest {
return ListIdentityProvidersRequest.fromPartial(base ?? {}); return ListIdentityProvidersRequest.fromPartial(base ?? {});
}, },
fromPartial(_: DeepPartial<ListIdentityProvidersRequest>): ListIdentityProvidersRequest { fromPartial(object: DeepPartial<ListIdentityProvidersRequest>): ListIdentityProvidersRequest {
const message = createBaseListIdentityProvidersRequest(); const message = createBaseListIdentityProvidersRequest();
message.pageSize = object.pageSize ?? 0;
message.pageToken = object.pageToken ?? "";
return message; return message;
}, },
}; };
function createBaseListIdentityProvidersResponse(): ListIdentityProvidersResponse { function createBaseListIdentityProvidersResponse(): ListIdentityProvidersResponse {
return { identityProviders: [] }; return { identityProviders: [], nextPageToken: "" };
} }
export const ListIdentityProvidersResponse: MessageFns<ListIdentityProvidersResponse> = { export const ListIdentityProvidersResponse: MessageFns<ListIdentityProvidersResponse> = {
...@@ -508,6 +577,9 @@ export const ListIdentityProvidersResponse: MessageFns<ListIdentityProvidersResp ...@@ -508,6 +577,9 @@ export const ListIdentityProvidersResponse: MessageFns<ListIdentityProvidersResp
for (const v of message.identityProviders) { for (const v of message.identityProviders) {
IdentityProvider.encode(v!, writer.uint32(10).fork()).join(); IdentityProvider.encode(v!, writer.uint32(10).fork()).join();
} }
if (message.nextPageToken !== "") {
writer.uint32(18).string(message.nextPageToken);
}
return writer; return writer;
}, },
...@@ -526,6 +598,14 @@ export const ListIdentityProvidersResponse: MessageFns<ListIdentityProvidersResp ...@@ -526,6 +598,14 @@ export const ListIdentityProvidersResponse: MessageFns<ListIdentityProvidersResp
message.identityProviders.push(IdentityProvider.decode(reader, reader.uint32())); message.identityProviders.push(IdentityProvider.decode(reader, reader.uint32()));
continue; continue;
} }
case 2: {
if (tag !== 18) {
break;
}
message.nextPageToken = reader.string();
continue;
}
} }
if ((tag & 7) === 4 || tag === 0) { if ((tag & 7) === 4 || tag === 0) {
break; break;
...@@ -541,6 +621,7 @@ export const ListIdentityProvidersResponse: MessageFns<ListIdentityProvidersResp ...@@ -541,6 +621,7 @@ export const ListIdentityProvidersResponse: MessageFns<ListIdentityProvidersResp
fromPartial(object: DeepPartial<ListIdentityProvidersResponse>): ListIdentityProvidersResponse { fromPartial(object: DeepPartial<ListIdentityProvidersResponse>): ListIdentityProvidersResponse {
const message = createBaseListIdentityProvidersResponse(); const message = createBaseListIdentityProvidersResponse();
message.identityProviders = object.identityProviders?.map((e) => IdentityProvider.fromPartial(e)) || []; message.identityProviders = object.identityProviders?.map((e) => IdentityProvider.fromPartial(e)) || [];
message.nextPageToken = object.nextPageToken ?? "";
return message; return message;
}, },
}; };
...@@ -592,7 +673,7 @@ export const GetIdentityProviderRequest: MessageFns<GetIdentityProviderRequest> ...@@ -592,7 +673,7 @@ export const GetIdentityProviderRequest: MessageFns<GetIdentityProviderRequest>
}; };
function createBaseCreateIdentityProviderRequest(): CreateIdentityProviderRequest { function createBaseCreateIdentityProviderRequest(): CreateIdentityProviderRequest {
return { identityProvider: undefined }; return { identityProvider: undefined, identityProviderId: "" };
} }
export const CreateIdentityProviderRequest: MessageFns<CreateIdentityProviderRequest> = { export const CreateIdentityProviderRequest: MessageFns<CreateIdentityProviderRequest> = {
...@@ -600,6 +681,9 @@ export const CreateIdentityProviderRequest: MessageFns<CreateIdentityProviderReq ...@@ -600,6 +681,9 @@ export const CreateIdentityProviderRequest: MessageFns<CreateIdentityProviderReq
if (message.identityProvider !== undefined) { if (message.identityProvider !== undefined) {
IdentityProvider.encode(message.identityProvider, writer.uint32(10).fork()).join(); IdentityProvider.encode(message.identityProvider, writer.uint32(10).fork()).join();
} }
if (message.identityProviderId !== "") {
writer.uint32(18).string(message.identityProviderId);
}
return writer; return writer;
}, },
...@@ -618,6 +702,14 @@ export const CreateIdentityProviderRequest: MessageFns<CreateIdentityProviderReq ...@@ -618,6 +702,14 @@ export const CreateIdentityProviderRequest: MessageFns<CreateIdentityProviderReq
message.identityProvider = IdentityProvider.decode(reader, reader.uint32()); message.identityProvider = IdentityProvider.decode(reader, reader.uint32());
continue; continue;
} }
case 2: {
if (tag !== 18) {
break;
}
message.identityProviderId = reader.string();
continue;
}
} }
if ((tag & 7) === 4 || tag === 0) { if ((tag & 7) === 4 || tag === 0) {
break; break;
...@@ -635,6 +727,7 @@ export const CreateIdentityProviderRequest: MessageFns<CreateIdentityProviderReq ...@@ -635,6 +727,7 @@ export const CreateIdentityProviderRequest: MessageFns<CreateIdentityProviderReq
message.identityProvider = (object.identityProvider !== undefined && object.identityProvider !== null) message.identityProvider = (object.identityProvider !== undefined && object.identityProvider !== null)
? IdentityProvider.fromPartial(object.identityProvider) ? IdentityProvider.fromPartial(object.identityProvider)
: undefined; : undefined;
message.identityProviderId = object.identityProviderId ?? "";
return message; return message;
}, },
}; };
...@@ -857,6 +950,9 @@ export const IdentityProviderServiceDefinition = { ...@@ -857,6 +950,9 @@ export const IdentityProviderServiceDefinition = {
responseStream: false, responseStream: false,
options: { options: {
_unknownFields: { _unknownFields: {
8410: [
new Uint8Array([17, 105, 100, 101, 110, 116, 105, 116, 121, 95, 112, 114, 111, 118, 105, 100, 101, 114]),
],
578365826: [ 578365826: [
new Uint8Array([ new Uint8Array([
46, 46,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment