Files
threshold/internal/proto/local/controller/api/services/v1/project_service.proto
T
c0c6a9b0b8 Handler project (#44)
* 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>
2020-05-12 17:35:48 -07:00

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;
}