* Install buf with go install This reduces the impact of using buf on our dependency closure, which was significant. It also avoids potential issues with building buf given our own internal dependency constraints. This has caused issues (including crashes!) in the past. See https://github.com/cockroachdb/cockroach/issues/67216#issuecomment-874176186 for more discussion on using tool dependencies generally, and https://github.com/bufbuild/buf/issues/52 for an example of where this sort of thing caused an issue for a user. * Upgrade buf version We should migrate to v1 sooner rather than later, as it has some breaking changes from v0. * Change buf lint/breaking commands These commands were moved up one level for v1 * Migrate to buf.yaml to v1 * Remove unused imports These were uncovered by using "buf lint". * Use buf v1.3.1 * Depend on googleapis and grpc-gateway via BSR * Switch to buf for proto generation * Remove third party dependency * Remove unused tools and scripts * Move local protos up one level * Temporarily don't fail on breaking changes * Generate CI config * Fix generation of controller.json * Replace use of deprecated flag * Remove unused import, regenerate files * Remove temporary skipping over breaking check
128 lines
4.1 KiB
Protocol Buffer
128 lines
4.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package controller.api.services.v1;
|
|
|
|
option go_package = "github.com/hashicorp/boundary/internal/gen/controller/api/services;services";
|
|
|
|
import "protoc-gen-openapiv2/options/annotations.proto";
|
|
import "google/api/annotations.proto";
|
|
import "google/protobuf/field_mask.proto";
|
|
import "controller/api/resources/hosts/v1/host.proto";
|
|
|
|
service HostService {
|
|
// GetHost returns a stored Host if present. The provided request
|
|
// must include the host ID for the resource being retrieved. If the ID is
|
|
// missing, malformed or referencing anon existing resource an error is
|
|
// returned.
|
|
rpc GetHost(GetHostRequest) returns (GetHostResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/hosts/{id}"
|
|
response_body: "item"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "Gets a single Host."
|
|
};
|
|
}
|
|
|
|
// ListHosts returns a list of stored hosts which exist inside the provided
|
|
// Host Catalog. The request must include the Host Catalog id containing the
|
|
// Hosts being listed. If the id is missing, malformed, or reference a
|
|
// non-existing resource, an error is returned.
|
|
rpc ListHosts(ListHostsRequest) returns (ListHostsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/hosts"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "List all Hosts for the specified Catalog."
|
|
};
|
|
}
|
|
|
|
// CreateHost creates and stores a Host in boundary. The provided
|
|
// request must include the Host Catalog id in which the Host
|
|
// will be created. If the Catalog id is missing, malformed or references a
|
|
// non-existing resource, an error is returned. If a name is provided that
|
|
// is in use by another Host in the same Host Catalog, an error is returned.
|
|
rpc CreateHost(CreateHostRequest) returns (CreateHostResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/hosts"
|
|
body: "item"
|
|
response_body: "item"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "Create a single Host."
|
|
};
|
|
}
|
|
|
|
// UpdateHost updates an existing Host in boundary. The provided
|
|
// Host must not have any read only fields set. The update mask must be
|
|
// included in the request and contain at least 1 mutable field. To unset
|
|
// a field's value, include the field in the update mask and don't set it
|
|
// in the provided Host. An error is returned if the Host id is missing or
|
|
// reference a non-existing resource. An error is also returned if the
|
|
// request attempts to update the name to one that is already in use in
|
|
// the same Host Catalog.
|
|
rpc UpdateHost(UpdateHostRequest) returns (UpdateHostResponse) {
|
|
option (google.api.http) = {
|
|
patch: "/v1/hosts/{id}"
|
|
body: "item"
|
|
response_body: "item"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "Update a Host."
|
|
};
|
|
}
|
|
|
|
// DeleteHost removes a Host from Boundary. If the provided Host ID
|
|
// is malformed or not provided an error is returned.
|
|
rpc DeleteHost(DeleteHostRequest) returns (DeleteHostResponse) {
|
|
option (google.api.http) = {
|
|
delete: "/v1/hosts/{id}"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "Delete a Host."
|
|
};
|
|
}
|
|
}
|
|
|
|
message GetHostRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message GetHostResponse {
|
|
api.resources.hosts.v1.Host item = 1;
|
|
}
|
|
|
|
message ListHostsRequest {
|
|
string host_catalog_id = 1 [json_name="host_catalog_id"];
|
|
string filter = 30 [json_name="filter"];
|
|
}
|
|
|
|
message ListHostsResponse {
|
|
repeated api.resources.hosts.v1.Host items = 1;
|
|
}
|
|
|
|
message CreateHostRequest {
|
|
api.resources.hosts.v1.Host item = 1;
|
|
}
|
|
|
|
message CreateHostResponse {
|
|
string uri = 1;
|
|
api.resources.hosts.v1.Host item = 2;
|
|
}
|
|
|
|
message UpdateHostRequest {
|
|
string id = 1;
|
|
api.resources.hosts.v1.Host item = 2;
|
|
google.protobuf.FieldMask update_mask = 3 [json_name="update_mask"];
|
|
}
|
|
|
|
message UpdateHostResponse {
|
|
api.resources.hosts.v1.Host item = 1;
|
|
}
|
|
|
|
message DeleteHostRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message DeleteHostResponse {}
|