blob: 49368defb0d813fb69862ab3b294407d887d5695 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
syntax = "proto3";
option java_multiple_files = true;
package org.apache.custos.core.user.profile.api;
enum UserStatus {
ACTIVE = 0;
CONFIRMED = 1;
APPROVED = 2;
DELETED = 3;
DUPLICATE = 4;
GRACE_PERIOD = 5;
INVITED = 6;
DENIED = 7;
PENDING = 8;
PENDING_APPROVAL = 9;
PENDING_CONFIRMATION = 10;
SUSPENDED = 11;
DECLINED = 12;
EXPIRED = 13;
}
enum DefaultGroupMembershipTypes {
OWNER = 0;
ADMIN = 1;
MEMBER = 2;
}
enum UserTypes {
END_USER = 0;
COMMUNITY = 1;
}
message UserProfile {
string username = 1;
string email = 2;
string first_name = 3;
string last_name = 4;
int64 created_at = 5;
UserStatus status = 6;
repeated UserAttribute attributes = 7;
repeated string client_roles = 8;
repeated string realm_roles = 9;
int64 last_modified_at = 10;
UserTypes type = 11;
string membership_type = 12;
}
message UserProfileRequest {
int64 tenantId = 1;
UserProfile profile = 2;
string performed_by = 3;
string client_id = 4;
int32 offset=5;
int32 limit=6;
}
message UserAttribute {
int64 id = 1;
string key = 2;
repeated string values = 3;
}
message GetAllUserProfilesResponse {
repeated UserProfile profiles = 1;
}
message GetUpdateAuditTrailRequest {
int64 tenantId = 1;
string username = 2;
}
message UserProfileAttributeUpdateMetadata {
string updated_attribute = 1;
string updated_attribute_value = 2;
string updated_by = 3;
string updated_at = 4;
}
message UserProfileStatusUpdateMetadata {
UserStatus updated_status = 1;
string updated_by = 2;
string updated_at = 3;
}
message GetUpdateAuditTrailResponse {
repeated UserProfileAttributeUpdateMetadata attribute_audit = 1;
repeated UserProfileStatusUpdateMetadata status_audit = 2;
}
message GroupRequest {
int64 tenant_id = 1;
Group group = 2;
string performed_by = 3;
string client_id = 4;
string membership_type = 5;
string id = 6;
string client_sec =7;
int32 offset =8;
int32 limit=9;
}
message GetAllGroupsResponse {
repeated Group groups = 1;
}
message Group {
string id = 1;
string name = 2;
repeated string realm_roles = 3;
repeated string client_roles = 4;
string parent_id = 5;
int64 created_time = 6;
int64 last_modified_time = 7;
repeated GroupAttribute attributes = 8;
string description = 9;
string owner_id = 10;
}
message GroupAttribute {
int64 id = 1;
string key = 2;
repeated string value = 3;
}
message GroupMembership {
int64 tenant_id = 1;
string group_id = 2;
string username = 3;
string type = 4;
string clientId = 5;
string clientSec = 6;
}
message GroupToGroupMembership {
int64 tenant_id = 1;
string parent_id = 2;
string child_id = 3;
string client_id = 4;
}
message Status {
bool status = 1;
}
message UserGroupMembershipTypeRequest {
string type = 1;
int64 tenant_id = 2;
string client_id = 3;
}