blob: d7abf045a597c8f34a3672c1b1ae30c2bdcb0d98 [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.iam.api;
enum FederatedIDPs {
CILOGON = 0;
FACEBOOK = 1;
GOOGLE = 2;
LINKEDIN = 3;
TWITTER = 4;
CUSTOM_OIDC = 5;
}
message SetUpTenantRequest {
int64 tenant_id = 1;
string tenant_name = 2;
string admin_username = 3;
string admin_firstname = 4;
string admin_lastname = 5;
string admin_email = 6;
string admin_password = 7;
string tenant_uRL = 8;
string requester_email = 9;
repeated string redirect_uRIs = 10;
string custos_client_id = 11;
}
message ConfigureFederateIDPRequest {
int64 tenant_id = 1;
FederatedIDPs type = 2;
string client_iD = 3;
string client_sec = 4;
map<string, string> config_map = 5;
string requester_email = 6;
string idp_id = 7;
string scope = 8;
}
message FederateIDPResponse {
bool status = 1;
}
message SetUpTenantResponse {
string client_id = 1;
string client_secret = 2;
}
message IsUsernameAvailableRequest {
int64 tenant_id = 1;
string access_token = 2;
string user_name = 3;
}
message CheckingResponse {
bool is_exist = 1;
}
message UserRepresentation {
string id = 1;
string username = 3;
string first_name = 4;
string last_name = 5;
string password = 6;
string email = 7;
bool temporary_password = 8;
repeated string realm_roles = 9;
repeated string client_roles = 10;
repeated UserAttribute attributes = 11;
string state = 12;
double creation_time = 13;
double last_login_at = 14;
}
message GroupRepresentation {
string name = 1;
string id = 2;
repeated string realm_roles = 3;
repeated string client_roles = 4;
repeated UserAttribute attributes = 5;
repeated UserRepresentation users = 6;
repeated GroupRepresentation sub_groups = 7;
string description = 8;
string ownerId = 9;
}
message RegisterUserRequest {
int64 tenant_id = 1;
string access_token = 2;
string client_id = 3;
string client_sec = 4;
UserRepresentation user = 5;
string performed_by = 6;
}
message RegisterUsersRequest {
repeated UserRepresentation users = 1;
int64 tenant_id = 2;
string access_token = 3;
string client_id = 4;
string performed_by = 5;
}
message RegisterUserResponse {
bool is_registered = 1;
}
message RegisterUsersResponse {
bool all_useres_registered = 1;
repeated UserRepresentation failed_users = 2;
}
message UserSearchMetadata {
string username = 1;
string first_name = 2;
string last_name = 3;
string email = 4;
string id = 5;
}
message FindUsersRequest {
UserSearchMetadata user = 3;
int32 offset = 4;
int32 limit = 5;
int64 tenant_id = 1;
string access_token = 2;
string client_id = 6;
string client_sec = 7;
}
message UserSearchRequest {
UserSearchMetadata user = 1;
int64 tenant_id = 2;
string access_token = 3;
string client_id = 4;
string client_sec = 5;
string performed_by = 6;
}
message FindUsersResponse {
repeated UserRepresentation users = 1;
}
message ResetUserPassword {
string username = 1;
string password = 2;
int64 tenant_id = 3;
string access_token = 4;
string client_id = 5;
string client_sec = 6;
string old_password = 7;
}
message DeleteUserRolesRequest {
int64 tenant_id = 1;
string username = 2;
repeated string client_roles = 3;
repeated string roles = 4;
string access_token = 5;
string client_id = 6;
string performed_by = 7;
string id = 8;
}
message AddUserRolesRequest {
int64 tenant_id = 1;
repeated string usernames = 2;
repeated string roles = 3;
string access_token = 4;
string client_id = 5;
bool client_level = 6;
string performed_by = 7;
repeated string agents = 8;
}
message UpdateUserProfileRequest {
string access_token = 1;
int64 tenant_id = 2;
UserRepresentation user = 3;
}
message AddUserResponse {
string code = 1;
}
message GetOperationsMetadataRequest {
int64 trace_id = 1;
}
message OperationMetadata {
string event = 1;
string status = 2;
string time_stamp = 3;
string performed_by = 4;
}
message GetOperationsMetadataResponse {
repeated OperationMetadata metadata = 1;
}
message DeleteTenantRequest {
int64 tenant_id = 1;
}
message AddRolesRequest {
repeated RoleRepresentation roles = 1;
bool client_level = 2;
int64 tenant_id = 3;
string client_id = 4;
}
message GetRolesRequest {
bool client_level = 1;
int64 tenant_id = 2;
string client_id = 3;
}
message RoleRepresentation {
string name = 1;
string description = 2;
bool composite = 3;
string id = 4;
}
message DeleteRoleRequest {
bool client_level = 1;
int64 tenant_id = 2;
string client_id = 3;
RoleRepresentation role = 4;
}
message AllRoles {
repeated RoleRepresentation roles = 1;
string scope = 2;
}
message AddProtocolMapperRequest {
string name = 1;
string attribute_name = 2;
string claim_name = 3;
ClaimJSONTypes claim_type = 4;
int64 tenant_id = 6;
string client_id = 7;
MapperTypes mapper_type = 8;
bool add_to_id_token = 9;
bool add_to_access_token = 10;
bool add_to_user_info = 11;
bool multi_valued = 12;
bool aggregate_attribute_values = 13;
}
enum MapperTypes {
USER_ATTRIBUTE = 0;
USER_REALM_ROLE = 1;
USER_CLIENT_ROLE = 2;
}
enum ClaimJSONTypes {
STRING = 0;
LONG = 1;
INTEGER = 2;
BOOLEAN = 3;
JSON = 4;
}
enum ResourceTypes {
USER =0;
AGENT = 1;
}
message OperationStatus {
bool status = 1;
}
message AddUserAttributesRequest {
repeated UserAttribute attributes = 1;
repeated string users = 2;
int64 tenant_id = 3;
string client_id = 4;
string access_token = 5;
string performedBy = 6;
repeated string agents = 7;
}
message DeleteUserAttributeRequest {
repeated UserAttribute attributes = 1;
repeated string users = 2;
int64 tenant_id = 3;
string client_id = 4;
string access_token = 5;
string performedBy = 6;
repeated string agents = 7;
}
message UserAttribute {
string key = 1;
repeated string values = 2;
}
message EventPersistenceRequest {
int64 tenantId = 1;
bool admin_event = 2;
string event = 3;
bool enable = 4;
int64 persistence_time = 5;
string performedBy = 6;
}
message GroupsRequest {
int64 tenantId = 1;
string accessToken = 2;
string performedBy = 3;
string clientId = 4;
string clientSec = 5;
repeated GroupRepresentation groups = 6;
}
message GroupRequest {
int64 tenantId = 1;
string accessToken = 2;
string performedBy = 3;
string clientId = 4;
string clientSec = 5;
string id = 6;
GroupRepresentation group = 7;
}
message GroupsResponse {
repeated GroupRepresentation groups = 1;
}
message UserGroupMappingRequest {
int64 tenantId = 1;
string accessToken = 2;
string performedBy = 3;
string clientId = 4;
string clientSec = 5;
string username = 6;
string group_id = 7;
string membership_type = 8;
}
message AgentClientMetadata {
int64 tenantId = 1;
string tenantURL = 2;
repeated string redirectURIs = 3;
string clientName = 4;
int64 access_token_life_time = 5;
string performedBy = 6;
string access_token = 7;
}
message Agent {
string id = 1;
repeated string realm_roles = 2;
repeated UserAttribute attributes = 3;
bool isEnabled = 4;
double creation_time = 5;
double last_modified_at = 6;
repeated string client_roles = 7;
}
message GetAllResources {
int64 tenantId = 1;
string clientId = 2;
ResourceTypes resource_type = 3;
}
message GetAllResourcesResponse {
repeated Agent agents = 1;
repeated UserRepresentation users = 2;
}
message DeleteExternalIDPsRequest {
int64 tenant_id= 1;
string client_id = 2;
repeated string user_id=3;
}
message GetExternalIDPsRequest {
int64 tenant_id= 1;
string client_id = 2;
string user_id=3;
}
message ExternalIDPLink {
string provider_alias = 1;
string provider_user_id =2;
string provider_username = 3;
}
message GetExternalIDPsResponse {
repeated ExternalIDPLink idp_links = 1;
}
message AddExternalIDPLinksRequest {
repeated ExternalIDPLink idp_links = 1;
int64 tenant_id= 2;
string client_id = 3;
}