yamcs.protobuf.iam.iam.proto Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yamcs-api Show documentation
Show all versions of yamcs-api Show documentation
Used by external clients to communicate with Yamcs
syntax = "proto2";
package yamcs.protobuf.iam;
option java_package = "org.yamcs.protobuf";
option java_outer_classname = "IamProto";
option java_multiple_files = true;
import "yamcs/api/annotations.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/empty.proto";
// Handles incoming requests related to Identity and Access Management (IAM)
service IamApi {
// List privileges
rpc ListPrivileges(google.protobuf.Empty) returns (ListPrivilegesResponse) {
option (yamcs.api.route) = {
get: "/api/privileges"
};
}
// List roles
rpc ListRoles(google.protobuf.Empty) returns (ListRolesResponse) {
option (yamcs.api.route) = {
get: "/api/roles"
};
}
// Get a role
rpc GetRole(GetRoleRequest) returns (RoleInfo) {
option (yamcs.api.route) = {
get: "/api/roles/{name}"
};
}
// Delete a role assignment
rpc DeleteRoleAssignment(DeleteRoleAssignmentRequest) returns (google.protobuf.Empty) {
option (yamcs.api.route) = {
delete: "/api/users/{name}/roles/{role}"
};
}
// List users
rpc ListUsers(google.protobuf.Empty) returns (ListUsersResponse) {
option (yamcs.api.route) = {
get: "/api/users"
};
}
// Get a user
rpc GetUser(GetUserRequest) returns (UserInfo) {
option (yamcs.api.route) = {
get: "/api/users/{name}"
};
}
// Create a user
rpc CreateUser(CreateUserRequest) returns (UserInfo) {
option (yamcs.api.route) = {
post: "/api/users"
body: "*"
};
}
// Update a user
rpc UpdateUser(UpdateUserRequest) returns (UserInfo) {
option (yamcs.api.route) = {
patch: "/api/users/{name}"
body: "*"
};
}
// Get own user
rpc GetOwnUser(google.protobuf.Empty) returns (UserInfo) {
option (yamcs.api.route) = {
get: "/api/user"
};
}
// Delete an external identity
rpc DeleteIdentity(DeleteIdentityRequest) returns (google.protobuf.Empty) {
option (yamcs.api.route) = {
delete: "/api/users/{name}/identities/{provider}"
};
}
// List groups
rpc ListGroups(google.protobuf.Empty) returns (ListGroupsResponse) {
option (yamcs.api.route) = {
get: "/api/groups"
};
}
// Get a group
rpc GetGroup(GetGroupRequest) returns (GroupInfo) {
option (yamcs.api.route) = {
get: "/api/groups/{name}"
};
}
// Create a group
rpc CreateGroup(CreateGroupRequest) returns (GroupInfo) {
option (yamcs.api.route) = {
post: "/api/groups"
body: "*"
};
}
// Update a group
rpc UpdateGroup(UpdateGroupRequest) returns (GroupInfo) {
option (yamcs.api.route) = {
patch: "/api/groups/{name}"
body: "*"
};
}
// Delete a group
rpc DeleteGroup(DeleteGroupRequest) returns (GroupInfo) {
option (yamcs.api.route) = {
delete: "/api/groups/{name}"
};
}
// List service accounts
rpc ListServiceAccounts(google.protobuf.Empty) returns (ListServiceAccountsResponse) {
option (yamcs.api.route) = {
get: "/api/service-accounts"
};
}
// Get a service account
rpc GetServiceAccount(GetServiceAccountRequest) returns (ServiceAccountInfo) {
option (yamcs.api.route) = {
get: "/api/service-accounts/{name}"
};
}
// Delete a service account
rpc DeleteServiceAccount(DeleteServiceAccountRequest) returns (google.protobuf.Empty) {
option (yamcs.api.route) = {
delete: "/api/service-accounts/{name}"
};
}
// Create a service account
rpc CreateServiceAccount(CreateServiceAccountRequest) returns (CreateServiceAccountResponse) {
option (yamcs.api.route) = {
post: "/api/service-accounts"
body: "*"
};
}
}
message ListUsersResponse {
repeated UserInfo users = 1;
}
message ListGroupsResponse {
repeated GroupInfo groups = 1;
}
message CreateGroupRequest {
optional string name = 1;
optional string description = 2;
repeated string users = 3;
repeated string serviceAccounts = 4;
}
message GetGroupRequest {
optional string name = 1;
}
message DeleteGroupRequest {
optional string name = 1;
}
message UpdateGroupRequest {
message MemberInfo {
repeated string users = 1;
repeated string serviceAccounts = 2;
}
optional string name = 1;
optional string newName = 2;
optional string description = 3;
optional MemberInfo memberInfo = 4;
}
message ListServiceAccountsResponse {
repeated ServiceAccountInfo serviceAccounts = 1;
}
message GetServiceAccountRequest {
optional string name = 1;
}
message CreateServiceAccountRequest {
optional string name = 1;
}
message CreateServiceAccountResponse {
optional string name = 1;
optional string applicationId = 2;
optional string applicationSecret = 3;
}
message DeleteServiceAccountRequest {
optional string name = 1;
}
message GetUserRequest {
optional string name = 1;
}
message CreateUserRequest {
optional string name = 1;
optional string displayName = 2;
optional string email = 3;
optional string password = 4;
}
message UpdateUserRequest {
optional string name = 1;
optional string displayName = 2;
optional string email = 3;
optional bool active = 4;
optional bool superuser = 5;
optional string password = 6;
optional RoleAssignment roleAssignment = 7;
}
message RoleAssignment {
repeated string roles = 1;
}
message UserInfo {
optional string login = 1 [deprecated=true];
optional string name = 17;
optional string displayName = 18;
optional string email = 19;
optional bool active = 16;
optional bool superuser = 13;
optional UserInfo createdBy = 20;
optional google.protobuf.Timestamp creationTime = 14;
optional google.protobuf.Timestamp confirmationTime = 21;
optional google.protobuf.Timestamp lastLoginTime = 15;
repeated string systemPrivilege = 11;
repeated ObjectPrivilegeInfo objectPrivilege = 12;
repeated GroupInfo groups = 22;
repeated ExternalIdentityInfo identities = 23;
repeated RoleInfo roles = 24;
}
message DeleteIdentityRequest {
optional string name = 1;
optional string provider = 2;
}
message ExternalIdentityInfo {
optional string identity = 1;
optional string provider = 2;
}
message DeleteRoleAssignmentRequest {
optional string name = 1;
optional string role = 2;
}
message GroupInfo {
optional string name = 1;
optional string description = 2;
repeated UserInfo users = 3;
repeated ServiceAccountInfo serviceAccounts = 4;
}
message ServiceAccountInfo {
optional string name = 1;
optional string displayName = 2;
optional bool active = 3;
optional UserInfo createdBy = 4;
optional google.protobuf.Timestamp creationTime = 5;
optional google.protobuf.Timestamp confirmationTime = 6;
optional google.protobuf.Timestamp lastLoginTime = 7;
}
message ObjectPrivilegeInfo {
optional string type = 1;
repeated string object = 2;
}
message ListPrivilegesResponse {
repeated string systemPrivileges = 1;
}
message GetRoleRequest {
optional string name = 1;
}
message ListRolesResponse {
repeated RoleInfo roles = 1;
}
message RoleInfo {
optional string name = 1;
optional string description = 2;
repeated string systemPrivileges = 3;
repeated ObjectPrivilegeInfo objectPrivileges = 4;
}