Skip to content

Commit

Permalink
Merge pull request #163 from ImMin5/master
Browse files Browse the repository at this point in the history
Add App Service
  • Loading branch information
ImMin5 authored Nov 24, 2023
2 parents 7f4def9 + 01b9ddf commit 5a9df83
Show file tree
Hide file tree
Showing 3 changed files with 213 additions and 21 deletions.
21 changes: 21 additions & 0 deletions proto/spaceone/api/identity/v2/api_key.proto
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,13 @@ service APIKey {
};
}

rpc verify (VerifyAPIKeyRequest) returns (APIKeyInfo) {
option (google.api.http) = {
post: "/identity/v2/api-key/verify"
body: "*"
};
}

rpc get (APIKeyRequest) returns (APIKeyInfo) {
option (google.api.http) = {
post: "/identity/v2/api-key/get"
Expand Down Expand Up @@ -73,6 +80,7 @@ message CreateAPIKeyRequest {
// +optional
string name = 2;
string domain_id = 21;
string expired_at = 22;
}

message UpdateAPIKeyRequest {
Expand All @@ -82,6 +90,18 @@ message UpdateAPIKeyRequest {
string domain_id = 21;
}

message VerifyAPIKeyRequest {
enum API_KEY_TYPE {
NONE_API_KEY_TYPE = 0;
ACCESS_KEY = 1;
SECRET_KEY = 2;
}
string api_key_id = 1;
API_KEY_TYPE api_key_type = 2;
string domain_id = 21;
string app_id = 22;
string user_id = 23;
}
message APIKeyRequest {
string api_key_id = 1;
string domain_id = 21;
Expand All @@ -101,6 +121,7 @@ message APIKeyInfo {
string user_id = 22;
string created_at = 31;
string last_accessed_at = 32;
string expired_at = 33;
}

message APIKeySearchQuery {
Expand Down
182 changes: 182 additions & 0 deletions proto/spaceone/api/identity/v2/app.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
syntax = "proto3";

package spaceone.api.identity.v2;

option go_package = "github.com/cloudforet-io/api/dist/go/spaceone/api/identity/v2";

import "google/protobuf/empty.proto";
import "google/protobuf/struct.proto";
import "google/api/annotations.proto";
import "spaceone/api/core/v1/query.proto";


service App {
rpc create (CreateAppRequest) returns (AppInfo) {
option (google.api.http) = {
post: "/identity/v2/app/create"
body: "*"
};
}

rpc update (UpdateAppRequest) returns (AppInfo) {
option (google.api.http) = {
post: "/identity/v2/app/update"
body: "*"
};
}

rpc generate_api_key (AppRequest) returns (AppInfo) {
option (google.api.http) = {
post: "/identity/v2/app/generate-api-key"
body: "*"
};
}

rpc enable (AppRequest) returns (AppInfo) {
option (google.api.http) = {
post: "/identity/v2/app/enable"
body: "*"
};
}

rpc disable (AppRequest) returns (AppInfo) {
option (google.api.http) = {
post: "/identity/v2/app/disable"
body: "*"
};
}

rpc delete (AppRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/identity/v2/app/delete"
body: "*"
};
}

rpc get (AppRequest) returns (AppInfo) {
option (google.api.http) = {
post: "/identity/v2/app/get"
body: "*"
};
}

rpc list (AppSearchQuery) returns (AppsInfo) {
option (google.api.http) = {
post: "/identity/v2/app/list"
body: "*"
};
}

rpc stat (AppStatQuery) returns (google.protobuf.Struct) {
option (google.api.http) = {
post: "/identity/v2/app/stat"
body: "*"
};
}
}

message CreateAppRequest {
string name = 1;
string role_id = 2;
string scope = 3;
google.protobuf.Struct tags = 4;
string domain_id = 21;
string workspace_id = 22;
string expired_at = 31;
}

message UpdateAppRequest {
string app_id = 1;
// +optional
string name = 2;
// +optional
google.protobuf.Struct tags = 3;
string domain_id = 21;
// +optional
string workspace_id = 22;
}

message AppRequest {
string app_id = 1;
string domain_id = 21;
// +optional
string workspace_id = 22;
}

message AppInfo {
enum State {
NONE_STATE = 0;
ENABLED = 1;
DISABLED = 2;
}

string app_id = 1;
string api_key = 2;
State state = 3;
string domain_id = 21;
string user_id = 22;
string role_id = 23;
string api_key_id = 24;
string created_at = 31;
string last_accessed_at = 32;
string expired_at = 33;
}

message AppSearchQuery {
enum State {
NONE_STATE = 0;
ENABLED = 1;
DISABLED = 2;
}

enum Scope {
NONE_SCOPE = 0;
DOMAIN = 1;
WORKSPACE = 2;
}

// +optional
spaceone.api.core.v1.Query query = 1;
// +optional
string app_id = 2;
// +optional
string app_key = 3;
// +optional
string name = 4;
// +optional
State state = 5;
// +optional
Scope scope = 6;
// +optional
string role_type = 7;
string domain_id = 21;
// +optional
string workspace_id = 22;
// +optional
string role_id = 23;
}

message AppsInfo {
repeated AppInfo results = 1;
int32 total_count = 2;
}

message AppStatQuery {
enum State {
NONE_STATE = 0;
ENABLED = 1;
DISABLED = 2;
}

spaceone.api.core.v1.StatisticsQuery query = 1;
string app_key = 2;
string name = 3;
State state = 4;
string scope = 5;
string role_type = 6;
string domain_id = 21;
string workspace_id = 22;
string app_id = 23;
string role_id = 24;

}
31 changes: 10 additions & 21 deletions proto/spaceone/api/identity/v2/user.proto
Original file line number Diff line number Diff line change
Expand Up @@ -129,12 +129,6 @@ enum AuthType {
EXTERNAL = 2;
}

enum UserType {
NONE_USER_TYPE = 0;
USER = 1;
API_USER = 2;
}

enum UserRequiredAction {
UPDATE_PASSWORD = 0;
}
Expand Down Expand Up @@ -179,21 +173,19 @@ message CreateUserRequest {
string name = 3;
// +optional
string email = 4;
// +optional
UserType user_type = 5;
AuthType auth_type = 6;
AuthType auth_type = 5;
// en,ko
// +optional
string language = 7;
string language = 6;
// UTC, Asia/Seoul
// +optional
string timezone = 8;
string timezone = 7;
// +optional
google.protobuf.Struct tags = 9;
google.protobuf.Struct tags = 8;
// If reset_password is true, send email
bool reset_password = 10;
bool reset_password = 9;
// +optional
UserRoleBinding role_binding = 11;
UserRoleBinding role_binding = 10;
string domain_id = 21;
}

Expand Down Expand Up @@ -298,9 +290,7 @@ message UserSearchQuery {
// +optional
string email = 5;
// +optional
UserType user_type = 6;
// +optional
AuthType auth_type = 7;
AuthType auth_type = 6;
// +optional
string domain_id = 21;
string workspace_id = 22;
Expand Down Expand Up @@ -328,10 +318,9 @@ message UserInfo {
State state = 3;
string email = 4;
bool email_verified = 5;
UserType user_type = 6;
AuthType auth_type = 7;
RoleType role_type = 8;
MFA mfa = 9;
AuthType auth_type = 6;
RoleType role_type = 7;
MFA mfa = 8;
string language = 10;
string timezone = 11;
repeated UserRequiredAction required_actions = 12;
Expand Down

0 comments on commit 5a9df83

Please sign in to comment.