* Renamed fakeRepo to mockRepo * Changing around TODOs to capture current plans with the code. * Remove the repo interface and use a real DB for tests. * Fixed a few tests. * Adding checks for properly formatted identifiers. * Updating code to account for recent merges. Relaxing some restrictions on what an id can look like. * Added small comment explaining why RegisterGrpcGatewayer interface exists. * Move project service up a call level. Long term I think it would make sense to define these services even higher up the call stack, potentially at the initialization of the controller server, near where the DB is initialized. * Making these fields align with those in the resources under hosts/... * Hard code the service initialization in the handler registration code. * Regenerate project related code proto code. * Removing type field for project. * Adds basic project handling in CLI/SDK (#47) * Adds SDK for creating and reading projects * Reorganizes a bit * Adds CLI for creating and reading projects * Fixes some some generation bugs * Adds redirect support for default org ID * Fix protobuf import references being moved. * Update client test to look for "orgs" and "projects" instead of "org" and "project" * Update expected segments test * Fix setAddr handling when default organization is in use * Set client in target after create or read Co-authored-by: Jim Lambert <jimlambrt@Jims-MBP-3.home> Co-authored-by: Jim <jlambert@hashicorp.com> Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com> Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com>
109 lines
2.8 KiB
Protocol Buffer
109 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package controller.api.services.v1;
|
|
|
|
option go_package = "github.com/hashicorp/watchtower/internal/gen/controller/api/services;services";
|
|
|
|
import "protoc-gen-swagger/options/annotations.proto";
|
|
import "google/api/annotations.proto";
|
|
import "google/protobuf/field_mask.proto";
|
|
import "google/protobuf/wrappers.proto";
|
|
import "controller/api/resources/scopes/v1/project.proto";
|
|
|
|
service ProjectService {
|
|
rpc GetProject(GetProjectRequest) returns (GetProjectResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/orgs/{org_id}/projects/{id}"
|
|
response_body: "item"
|
|
};
|
|
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
|
|
summary: "Gets a single Project"
|
|
};
|
|
}
|
|
rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/orgs/{org_id}/projects"
|
|
};
|
|
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
|
|
summary: "Lists all Projects"
|
|
};
|
|
}
|
|
rpc CreateProject(CreateProjectRequest) returns (CreateProjectResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/orgs/{org_id}/projects"
|
|
body: "item"
|
|
response_body: "item"
|
|
};
|
|
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
|
|
summary: "Creates a single Project"
|
|
};
|
|
}
|
|
rpc UpdateProject(UpdateProjectRequest) returns (UpdateProjectResponse) {
|
|
option (google.api.http) = {
|
|
patch: "/v1/orgs/{org_id}/projects/{id}"
|
|
body: "item"
|
|
response_body: "item"
|
|
};
|
|
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
|
|
summary: "Updates a Project"
|
|
};
|
|
}
|
|
rpc DeleteProject(DeleteProjectRequest) returns (DeleteProjectResponse) {
|
|
option (google.api.http) = {
|
|
delete: "/v1/orgs/{org_id}/projects/{id}"
|
|
};
|
|
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
|
|
summary: "Deletes a Project"
|
|
};
|
|
}
|
|
}
|
|
|
|
message GetProjectRequest {
|
|
string org_id = 1;
|
|
string id = 2;
|
|
string view = 3;
|
|
}
|
|
|
|
message GetProjectResponse {
|
|
resources.scopes.v1.Project item = 1;
|
|
}
|
|
|
|
message ListProjectsRequest {
|
|
string org_id = 1;
|
|
string view = 2;
|
|
}
|
|
|
|
message ListProjectsResponse {
|
|
repeated resources.scopes.v1.Project items = 1;
|
|
}
|
|
|
|
message CreateProjectRequest {
|
|
string org_id = 1;
|
|
resources.scopes.v1.Project item = 2;
|
|
}
|
|
|
|
message CreateProjectResponse {
|
|
string uri = 1;
|
|
resources.scopes.v1.Project item = 2;
|
|
}
|
|
|
|
message UpdateProjectRequest {
|
|
string org_id = 1;
|
|
string id = 2;
|
|
resources.scopes.v1.Project item = 3;
|
|
google.protobuf.FieldMask update_mask = 4;
|
|
}
|
|
|
|
message UpdateProjectResponse {
|
|
resources.scopes.v1.Project item = 1;
|
|
}
|
|
|
|
message DeleteProjectRequest {
|
|
string org_id = 1;
|
|
string id = 2;
|
|
}
|
|
|
|
message DeleteProjectResponse {
|
|
bool existed = 1;
|
|
}
|