diff --git a/aruna/api/dataproxy/services/v2/bundler_service.proto b/aruna/api/dataproxy/services/v2/bundler_service.proto index 3a71edd3..ffd9779b 100644 --- a/aruna/api/dataproxy/services/v2/bundler_service.proto +++ b/aruna/api/dataproxy/services/v2/bundler_service.proto @@ -10,15 +10,29 @@ import "google/protobuf/timestamp.proto"; import "google/api/visibility.proto"; import "google/api/annotations.proto"; - +// BundlerService +// +// Status: ALPHA +// +// Dataproxy specific service for creating and deleting bundles. service BundlerService { option (google.api.api_visibility).restriction = "PROXY"; + // CreateBundle + // + // Status: ALPHA + // + // Creates a bundle with multiple resources, dataproxy only. rpc CreateBundle(CreateBundleRequest) returns (CreateBundleResponse) { option (google.api.http) = { post : "/v2/bundles" body : "*" }; } + // DeleteBundle + // + // Status: ALPHA + // + // Delete an existing bundle, dataproxy only. rpc DeleteBundle(DeleteBundleRequest) returns (DeleteBundleResponse) { option (google.api.http) = { delete : "/v2/bundles/{bundle_id}" @@ -27,7 +41,6 @@ service BundlerService { } } - message CreateBundleRequest { repeated string resource_ids = 1; string filename = 2; // .tar.gz / .zip diff --git a/aruna/api/dataproxy/services/v2/dataproxy_service.proto b/aruna/api/dataproxy/services/v2/dataproxy_service.proto index b3a92d87..da262caf 100644 --- a/aruna/api/dataproxy/services/v2/dataproxy_service.proto +++ b/aruna/api/dataproxy/services/v2/dataproxy_service.proto @@ -9,20 +9,24 @@ option java_outer_classname = "DataProxyService"; import "google/api/annotations.proto"; import "google/api/visibility.proto"; - +// DataproxyService +// +// Status: ALPHA +// +// Service for data replication between data-proxies service DataproxyService { option (google.api.api_visibility).restriction = "PROXY"; // RequestReplication // - // Status: BETA + // Status: ALPHA // // Creates a replication request rpc RequestReplication(RequestReplicationRequest) returns (RequestReplicationResponse) {} // InitReplication // - // Status: BETA + // Status: ALPHA // // Provides the necessary url to init replication rpc InitReplication(InitReplicationRequest) returns (InitReplicationResponse) {} diff --git a/aruna/api/hooks/services/v2/hooks_service.proto b/aruna/api/hooks/services/v2/hooks_service.proto index fb33b5fc..39654659 100644 --- a/aruna/api/hooks/services/v2/hooks_service.proto +++ b/aruna/api/hooks/services/v2/hooks_service.proto @@ -18,34 +18,70 @@ import "google/api/visibility.proto"; service HooksService { option (google.api.api_visibility).restriction = "SERVER"; - // Created Hooks are always associated with the owner that creates the hook + // CreateHook + // + // Status: ALPHA + // + // Creates a replication request + // Hooks are always associated with the owner that created the hook rpc CreateHook(CreateHookRequest) returns (CreateHookResponse) { option (google.api.http) = { post : "/v2/hooks" body : "*" }; } + + // AddProjectsToHook + // + // Status: ALPHA + // + // Assigns a hook to a project rpc AddProjectsToHook(AddProjectsToHookRequest) returns (AddProjectsToHookResponse) { option (google.api.http) = { post : "/v2/hooks/{hook_id}" body : "*" }; } + + // ListProjectHooks + // + // Status: ALPHA + // + // List all hooks assigned to a project rpc ListProjectHooks(ListProjectHooksRequest) returns (ListProjectHooksResponse) { option (google.api.http) = { get : "/v2/hooks/projects/{project_id}" }; } + + // ListOwnedHooks + // + // Status: ALPHA + // + // List all hooks created by a user rpc ListOwnedHooks(ListOwnedHooksRequest) returns (ListOwnedHooksResponse) { option (google.api.http) = { get : "/v2/hooks/owner/{user_id}" }; } + + // DeleteHook + // + // Status: ALPHA + // + // Delete a hook by id rpc DeleteHook(DeleteHookRequest) returns (DeleteHookResponse) { option (google.api.http) = { delete : "/v2/hooks/{hook_id}" }; } + + // Callback API + // + // Status: ALPHA + // + // Externally triggered hooks should respond to this endpoint to + // signal completion or failure and to provide additional flags for the object rpc HookCallback(HookCallbackRequest) returns (HookCallbackResponse) { option (google.api.http) = { patch : "/v2/hooks/callback" diff --git a/aruna/api/notification/services/v2/notification_service.proto b/aruna/api/notification/services/v2/notification_service.proto index c7925a92..0589824a 100644 --- a/aruna/api/notification/services/v2/notification_service.proto +++ b/aruna/api/notification/services/v2/notification_service.proto @@ -15,12 +15,16 @@ import "google/api/visibility.proto"; // EventNotificationService // -// A service to receive events in the AOS storage +// Status: BETA +// +// A service to receive events for CRUD operations on resources (users, resources etc.) service EventNotificationService { option (google.api.api_visibility).restriction = "SERVER"; // CreateStreamConsumer // + // Status: BETA + // // Creates a new event stream consumer. rpc CreateStreamConsumer(CreateStreamConsumerRequest) returns (CreateStreamConsumerResponse) { @@ -32,6 +36,8 @@ service EventNotificationService { // GetEventMessageBatch // + // Status: BETA + // // Reads a set of messages from a given stream group // Each message contains a separate acknowledgement message thatis protected by a salt and an hmac for verification. // The message can be send directly through the AcknowledgeMessageBatch call to acknowledge the message. @@ -44,6 +50,8 @@ service EventNotificationService { // GetEventMessageBatch // + // Status: BETA + // // Opens a stream which pushes each received notification individual and just-in-time. // Each message contains a separate acknowledgement message that is protected by a salt and an hmac for verification. // The message can be send directly through the AcknowledgeMessageBatch call to acknowledge the message. @@ -56,6 +64,8 @@ service EventNotificationService { // AcknowledgeMessageBatch // + // Status: BETA + // // List of messages to acknowledge // Each reply is protected by a salt and and hmac that verifies the message rpc AcknowledgeMessageBatch(AcknowledgeMessageBatchRequest) @@ -68,6 +78,8 @@ service EventNotificationService { // DeleteEventStreamingGroup // + // Status: BETA + // // Deletes an existing event stream consumer by ID. rpc DeleteStreamConsumer(DeleteStreamConsumerRequest) returns (DeleteStreamConsumerResponse) { diff --git a/aruna/api/storage/models/v2/models.proto b/aruna/api/storage/models/v2/models.proto index fdeb83c9..820ca67a 100644 --- a/aruna/api/storage/models/v2/models.proto +++ b/aruna/api/storage/models/v2/models.proto @@ -64,7 +64,8 @@ enum InternalRelationVariant { INTERNAL_RELATION_VARIANT_VERSION = 3; INTERNAL_RELATION_VARIANT_METADATA = 4; INTERNAL_RELATION_VARIANT_POLICY = 5; - INTERNAL_RELATION_VARIANT_CUSTOM = 6; + INTERNAL_RELATION_VARIANT_DELETED = 6; + INTERNAL_RELATION_VARIANT_CUSTOM = 7; } // internal object relation type (direction) diff --git a/aruna/api/storage/services/v2/authorization_service.proto b/aruna/api/storage/services/v2/authorization_service.proto index 475faf7e..58723f6c 100644 --- a/aruna/api/storage/services/v2/authorization_service.proto +++ b/aruna/api/storage/services/v2/authorization_service.proto @@ -10,6 +10,8 @@ import "google/api/annotations.proto"; // AuthorizationService // +// Status: BETA +// // Contains all methods to edit and change user authorization service AuthorizationService { // CreateAuthorization diff --git a/aruna/api/storage/services/v2/collection_service.proto b/aruna/api/storage/services/v2/collection_service.proto index c36ac976..33d47b16 100644 --- a/aruna/api/storage/services/v2/collection_service.proto +++ b/aruna/api/storage/services/v2/collection_service.proto @@ -11,6 +11,8 @@ import "google/api/visibility.proto"; // CollectionService // +// Status: BETA +// // Contains all methods that get/create or update Collection and associated resources service CollectionService { option (google.api.api_visibility).restriction = "SERVER"; diff --git a/aruna/api/storage/services/v2/endpoint_service.proto b/aruna/api/storage/services/v2/endpoint_service.proto index fd88f906..562e2e14 100644 --- a/aruna/api/storage/services/v2/endpoint_service.proto +++ b/aruna/api/storage/services/v2/endpoint_service.proto @@ -9,19 +9,19 @@ option java_outer_classname = "EndpointService"; import "aruna/api/storage/models/v2/models.proto"; import "google/api/annotations.proto"; - // EndpointService // -// Contains all methods that get/create or update Endpoint and associated resources +// Status: BETA +// +// Contains all methods that get/create or update Endpoint (Dataproxies) and associated resources service EndpointService { - // CreateEndpoint // // Status: BETA // // Registers a new Endpoint (Aruna DataProxy) to the server - // Needs admin permissions + // requires admin permissions rpc CreateEndpoint(CreateEndpointRequest) returns (CreateEndpointResponse) { option (google.api.http) = { post : "/v2/endpoints" @@ -41,6 +41,18 @@ service EndpointService { }; } + // SetEndpointStatus + // + // Status: BETA + // + // This request sets the status of a specific Endpoint + rpc SetEndpointStatus(SetEndpointStatusRequest) + returns (SetEndpointStatusResponse) { + option (google.api.http) = { + patch : "/v2/endpoints/{endpoint_id}/status" + }; + } + // GetEndpoint // // Status: BETA @@ -153,4 +165,13 @@ message GetDefaultEndpointRequest {} message GetDefaultEndpointResponse { // Default endpoint of the server instance storage.models.v2.Endpoint endpoint = 1; +} + +message SetEndpointStatusRequest { + string endpoint_id = 1; + storage.models.v2.ComponentStatus status = 2; +} + +message SetEndpointStatusResponse { + storage.models.v2.Endpoint endpoint = 1; } \ No newline at end of file diff --git a/aruna/api/storage/services/v2/info_service.proto b/aruna/api/storage/services/v2/info_service.proto index 0e5b09a8..2e28431b 100644 --- a/aruna/api/storage/services/v2/info_service.proto +++ b/aruna/api/storage/services/v2/info_service.proto @@ -12,9 +12,11 @@ import "google/protobuf/timestamp.proto"; // StorageStatusService // +// Status: BETA +// // This is a generic service that contains utility functions // these functions are used to query additional meta-information -// about the status of the overall storage architecture +// about the status of storage components service StorageStatusService { // GetStorageVersion @@ -40,21 +42,33 @@ service StorageStatusService { }; } - + // GetPubkeys + // + // Status: BETA + // + // Get all public keys of all storage components rpc GetPubkeys(GetPubkeysRequest) returns (GetPubkeysResponse) { option (google.api.http) = { get : "/v2/info/pubkeys" }; } - + // GetAnnouncements + // + // Status: BETA + // + // Query global announcements rpc GetAnnouncements(GetAnnouncementsRequest) returns (GetAnnouncementsResponse) { option (google.api.http) = { get : "/v2/info/announcements" }; } - + // SetAnnouncements + // + // Status: BETA + // + // Update / add global announcements rpc SetAnnouncements(SetAnnouncementsRequest) returns (SetAnnouncementsResponse) { option (google.api.http) = { post : "/v2/info/announcements/set" @@ -63,10 +77,8 @@ service StorageStatusService { } } - message GetStorageVersionRequest {} - message SemanticVersion { // Complete version string string version_string = 1; @@ -77,7 +89,6 @@ message SemanticVersion { string labels = 5; } - message LocationVersion { // Status of a specific Location e.g Gießen / dataproxy / 0.5.0-beta.1 string location = 1; @@ -120,7 +131,6 @@ message GetPubkeysResponse { repeated storage.models.v2.Pubkey pubkeys = 1; } - message Announcement { string id = 1; string content = 2; @@ -129,7 +139,6 @@ message Announcement { message GetAnnouncementsRequest {} - message GetAnnouncementsResponse { repeated Announcement announcements = 1; } diff --git a/aruna/api/storage/services/v2/license_service.proto b/aruna/api/storage/services/v2/license_service.proto index dbce255e..f781ca3f 100644 --- a/aruna/api/storage/services/v2/license_service.proto +++ b/aruna/api/storage/services/v2/license_service.proto @@ -11,7 +11,9 @@ import "google/api/visibility.proto"; // LicenseService // -// Contains all methods to add, get or list licenses +// Status: BETA +// +// Contains all methods to add, get or list (custom) licenses service LicenseService { option (google.api.api_visibility).restriction = "SERVER"; // CreateLicense @@ -26,7 +28,7 @@ service LicenseService { }; } - // GetLicense + // GetLicense // // Status: BETA // diff --git a/aruna/api/storage/services/v2/object_service.proto b/aruna/api/storage/services/v2/object_service.proto index eacd8b3b..a0f232e9 100644 --- a/aruna/api/storage/services/v2/object_service.proto +++ b/aruna/api/storage/services/v2/object_service.proto @@ -12,17 +12,19 @@ import "google/api/visibility.proto"; // ObjectService // -// Contains all methods that get/create or update Objects and associated resources +// Status: BETA +// +// Contains all methods that get/create or update objects and associated resources service ObjectService { option (google.api.api_visibility).restriction = "SERVER"; - // CreateObject // // Status: BETA // - // This creates a new object - // Initializing an object will put it in a staging area. + // This creates a new object and puts it in a staging area. + // Staging objects have an "INITIALIZING" status + // and need to be finished either manually or by uploading data. rpc CreateObject(CreateObjectRequest) returns (CreateObjectResponse) { option (google.api.http) = { @@ -142,7 +144,6 @@ service ObjectService { // These are the models for the above described requests and responses. // gRPC best practises advice each Request and Response message in a RPC to be // called {rpc_name}Request and {rpc_name}Response. - message CreateObjectRequest { // collection name string name = 1; diff --git a/aruna/api/storage/services/v2/project_service.proto b/aruna/api/storage/services/v2/project_service.proto index 12d29606..6e824d87 100644 --- a/aruna/api/storage/services/v2/project_service.proto +++ b/aruna/api/storage/services/v2/project_service.proto @@ -42,6 +42,8 @@ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { // ProjectService // +// Status: BETA +// // Contains all methods that get/create or update Projects and associated resources service ProjectService { option (google.api.api_visibility).restriction = "SERVER"; diff --git a/aruna/api/storage/services/v2/relations_service.proto b/aruna/api/storage/services/v2/relations_service.proto index e6b9a606..5920c149 100644 --- a/aruna/api/storage/services/v2/relations_service.proto +++ b/aruna/api/storage/services/v2/relations_service.proto @@ -10,13 +10,16 @@ import "google/api/annotations.proto"; // RelationsService // +// Status: BETA +// // Contains all methods to edit and change resource relations service RelationsService { // ModifyRelation // // Status: BETA // - // Modifys all relations to / from a resource + // Add/Remove/Modifies all relation types to / from a resource + // Works for internal and external relations rpc ModifyRelations(ModifyRelationsRequest) returns (ModifyRelationsResponse) { option (google.api.http) = { @@ -30,6 +33,7 @@ service RelationsService { // Status: BETA // // Gets all downstream hierarchy relations from a resource + // results in a tree structure rpc GetHierarchy(GetHierarchyRequest) returns (GetHierarchyResponse) { option (google.api.http) = { diff --git a/aruna/api/storage/services/v2/search_service.proto b/aruna/api/storage/services/v2/search_service.proto index 3d766f81..f53df20d 100644 --- a/aruna/api/storage/services/v2/search_service.proto +++ b/aruna/api/storage/services/v2/search_service.proto @@ -8,6 +8,12 @@ option java_outer_classname = "SearchService"; import "aruna/api/storage/models/v2/models.proto"; import "google/api/annotations.proto"; + +// SearchService +// +// Status: BETA +// +// SearchService is used to query resources in the index and get a public view of them. service SearchService { // SearchResources @@ -33,7 +39,6 @@ service SearchService { }; } - // GetResources // // Status: BETA diff --git a/aruna/api/storage/services/v2/service_account_service.proto b/aruna/api/storage/services/v2/service_account_service.proto index dcdaca73..bfee1ae7 100644 --- a/aruna/api/storage/services/v2/service_account_service.proto +++ b/aruna/api/storage/services/v2/service_account_service.proto @@ -12,9 +12,10 @@ import "google/api/visibility.proto"; // ServiceAccountService // -// Service that contains all methods for service_accounts, these are Accounts that are -// project specific (or global) and can be used for automation. -// Service account users will always contain (bot) behind their name +// Status: BETA +// +// Service that contains CRUD operations for service_accounts. +// Service accounts are project specific accounts that can be used for automation. service ServiceAccountService { option (google.api.api_visibility).restriction = "SERVER"; @@ -38,7 +39,7 @@ service ServiceAccountService { // // Creates a token for a service account // Each service account can only have one permission -> The token will have the same permission as the - // service account + // service account or a subset of it. rpc CreateServiceAccountToken(CreateServiceAccountTokenRequest) returns (CreateServiceAccountTokenResponse){ option (google.api.http) = { post : "/v2/service_accounts/{svc_account_id}/tokens" @@ -127,7 +128,6 @@ service ServiceAccountService { }; } - // GetDataproxyToken // // Status: ALPHA diff --git a/aruna/api/storage/services/v2/user_service.proto b/aruna/api/storage/services/v2/user_service.proto index 47f4b35f..b914d02b 100644 --- a/aruna/api/storage/services/v2/user_service.proto +++ b/aruna/api/storage/services/v2/user_service.proto @@ -13,8 +13,9 @@ import "google/api/visibility.proto"; // UserService // -// Contains all methods that get/create or update Users and associated resource -// including all autorization methods +// Status: BETA +// +// Contains all CRUD methods for users and associated resource service UserService { option (google.api.api_visibility).restriction = "SERVER"; @@ -198,7 +199,6 @@ service UserService { }; } - // GetDataproxyToken // // Status: ALPHA @@ -235,6 +235,11 @@ service UserService { }; } + // AddOidcProvider + // + // Status: BETA + // + // Add alternative oidc login method for user rpc AddOidcProvider(AddOidcProviderRequest) returns (AddOidcProviderResponse) { option (google.api.http) = { patch : "/v2/user/add_oidc" @@ -242,6 +247,12 @@ service UserService { }; } + // RemoveOidcProvider + // + // Status: BETA + // + // Remove alternative oidc login method from user + // (Only works if user has more than one oidc provider) rpc RemoveOidcProvider(RemoveOidcProviderRequest) returns (RemoveOidcProviderResponse) { option (google.api.http) = { patch : "/v2/user/remove_oidc" diff --git a/aruna/api/storage/services/v2/workspace_service.proto b/aruna/api/storage/services/v2/workspace_service.proto index 6e639238..2b2447c5 100644 --- a/aruna/api/storage/services/v2/workspace_service.proto +++ b/aruna/api/storage/services/v2/workspace_service.proto @@ -8,7 +8,11 @@ option java_outer_classname = "WorkspaceService"; import "google/api/annotations.proto"; import "google/api/visibility.proto"; -// Service to manage "special" anonymous collections / workspaces +// WorkspaceService +// +// Status: BETA +// +// Service to manage anonymous "scratch" projects / workspaces service WorkspaceService { option (google.api.api_visibility).restriction = "SERVER"; @@ -24,6 +28,7 @@ service WorkspaceService { body : "*" }; } + // GetWorkspaceTemplatesById // // Status: ALPHA @@ -35,6 +40,7 @@ service WorkspaceService { get: "/v2/workspaces/templates/{template_id}" }; } + // ListOwnedWorkspaceTemplates // // Status: ALPHA @@ -46,6 +52,7 @@ service WorkspaceService { get: "/v2/workspaces/templates" }; } + // DeleteWorkspaceTemplates // // Status: ALPHA @@ -63,7 +70,7 @@ service WorkspaceService { // // Status: ALPHA // - // A new request to create a personal anonymous workspace + // Create a personal anonymous workspace rpc CreateWorkspace(CreateWorkspaceRequest) returns (CreateWorkspaceResponse) { option (google.api.http) = { @@ -72,7 +79,6 @@ service WorkspaceService { }; } - // DeleteWorkspace // // Status: ALPHA