Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions aruna/api/dataproxy/services/v2/bundler_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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}"
Expand All @@ -27,7 +41,6 @@ service BundlerService {
}
}


message CreateBundleRequest {
repeated string resource_ids = 1;
string filename = 2; // .tar.gz / .zip
Expand Down
10 changes: 7 additions & 3 deletions aruna/api/dataproxy/services/v2/dataproxy_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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) {}
Expand Down
38 changes: 37 additions & 1 deletion aruna/api/hooks/services/v2/hooks_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
14 changes: 13 additions & 1 deletion aruna/api/notification/services/v2/notification_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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.
Expand All @@ -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.
Expand All @@ -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)
Expand All @@ -68,6 +78,8 @@ service EventNotificationService {

// DeleteEventStreamingGroup
//
// Status: BETA
//
// Deletes an existing event stream consumer by ID.
rpc DeleteStreamConsumer(DeleteStreamConsumerRequest)
returns (DeleteStreamConsumerResponse) {
Expand Down
3 changes: 2 additions & 1 deletion aruna/api/storage/models/v2/models.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions aruna/api/storage/services/v2/authorization_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import "google/api/annotations.proto";

// AuthorizationService
//
// Status: BETA
//
// Contains all methods to edit and change user authorization
service AuthorizationService {
// CreateAuthorization
Expand Down
2 changes: 2 additions & 0 deletions aruna/api/storage/services/v2/collection_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
29 changes: 25 additions & 4 deletions aruna/api/storage/services/v2/endpoint_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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
Expand Down Expand Up @@ -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;
}
27 changes: 18 additions & 9 deletions aruna/api/storage/services/v2/info_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"
Expand All @@ -63,10 +77,8 @@ service StorageStatusService {
}
}


message GetStorageVersionRequest {}


message SemanticVersion {
// Complete version string
string version_string = 1;
Expand All @@ -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;
Expand Down Expand Up @@ -120,7 +131,6 @@ message GetPubkeysResponse {
repeated storage.models.v2.Pubkey pubkeys = 1;
}


message Announcement {
string id = 1;
string content = 2;
Expand All @@ -129,7 +139,6 @@ message Announcement {

message GetAnnouncementsRequest {}


message GetAnnouncementsResponse {
repeated Announcement announcements = 1;
}
Expand Down
6 changes: 4 additions & 2 deletions aruna/api/storage/services/v2/license_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -26,7 +28,7 @@ service LicenseService {
};
}

// GetLicense
// GetLicense
//
// Status: BETA
//
Expand Down
Loading