You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/proto/local/controller/api/v1/host_set_service.proto

182 lines
5.2 KiB

syntax = "proto3";
package controller.api.v1;
option go_package = "github.com/hashicorp/watchtower/internal/gen/controller/api;api";
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/resource/v1/host_set.proto";
import "controller/api/resource/v1/host.proto";
import "controller/api/view/v1/view.proto";
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
info: {
title: "Controller API"
version: "0.0.1"
description: "API for managing resources associated with Controllers."
}
schemes: HTTPS
schemes: HTTP
};
service HostSetService {
// This retrieves the host set specified in the request using the basic view.
rpc GetHostSet(GetHostSetRequest) returns (GetHostSetResponse) {
option (google.api.http) = {
get: "/v1/org/{org}/projects/{project_id}/host-catalogs/{host_catalog_id}/host-sets/{id}"
response_body: "item"
};
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
summary: "Get a single HostSet"
};
}
rpc ListHostSets(ListHostSetsRequest) returns (ListHostSetsResponse) {
option (google.api.http) = {
get: "/v1/org/{org}/projects/{project_id}/host-catalogs/{host_catalog_id}/host-sets"
};
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
summary: "List all HostSets under the specific catalog"
};
}
rpc CreateHostSet(CreateHostSetRequest) returns (CreateHostSetResponse) {
option (google.api.http) = {
post: "/v1/org/{org}/projects/{project_id}/host-catalogs/{host_catalog_id}/host-sets"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
summary: "Create a HostSet"
};
}
rpc UpdateHostSet(UpdateHostSetRequest) returns (UpdateHostSetResponse) {
option (google.api.http) = {
patch: "/v1/org/{org}/projects/{project_id}/host-catalogs/{host_catalog_id}/host-sets/{id}"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
summary: "Update a HostSet"
};
}
rpc DeleteHostSet(DeleteHostSetRequest) returns (DeleteHostSetResponse) {
option (google.api.http) = {
delete: "/v1/org/{org}/projects/{project_id}/host-catalogs/{host_catalog_id}/host-sets/{id}"
};
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
summary: "Delete a HostSet"
};
}
rpc AddToHostSet(AddToHostSetRequest) returns (AddToHostSetResponse) {
option (google.api.http) = {
post: "/v1/org/{org}/projects/{project_id}/host-catalogs/{host_catalog_id}/host-sets/{id}:add-hosts"
};
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
summary: "Adds existing Hosts to the Host Set"
};
}
rpc RemoveFromHostSet(RemoveFromHostSetRequest) returns (RemoveFromHostSetResponse) {
option (google.api.http) = {
post: "/v1/org/{org}/projects/{project_id}/host-catalogs/{host_catalog_id}/host-sets/{id}:remove-hosts"
};
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
summary: "Removes Hosts to the Host Set"
description: "Removes the hosts from this Host Set if present. If it is not present then no action is taken and no error is returned."
};
}
}
message GetHostSetRequest {
string org = 1;
string project_id = 2;
string host_catalog_id = 3;
string id = 4;
api.view.v1.View view = 5;
// Allows the full list of Hosts in this Host Set to be returned even if there are more than the system wide limit.
bool ignore_result_limit = 6;
}
message GetHostSetResponse {
api.resource.v1.HostSet item = 1;
}
message ListHostSetsRequest {
string org = 1;
string project_id = 2;
string host_catalog_id = 3;
bool ignore_result_limit = 4;
api.view.v1.View view = 5;
}
message ListHostSetsResponse {
repeated api.resource.v1.HostSet items = 1;
}
message CreateHostSetRequest {
string org = 1;
string project_id = 2;
string host_catalog_id = 3;
api.resource.v1.HostSet item = 4;
}
message CreateHostSetResponse {
string uri = 1;
api.resource.v1.HostSet item = 2;
}
message UpdateHostSetRequest {
string org = 1;
string project_id = 2;
string host_catalog_id = 3;
string id = 4;
api.resource.v1.HostSet item = 5;
google.protobuf.FieldMask update_mask = 6;
}
message UpdateHostSetResponse {
api.resource.v1.HostSet item = 1;
}
message DeleteHostSetRequest {
string org = 1;
string project_id =2;
string host_catalog_id = 3;
string id = 4;
}
message DeleteHostSetResponse {
bool existed = 1;
}
message AddToHostSetRequest {
string org = 1;
string project_id =2;
string host_catalog_id = 3;
string id = 4;
// A list of host uris which will be added to this host set.
repeated string host_uris = 5;
}
message AddToHostSetResponse {
}
message RemoveFromHostSetRequest {
string org = 1;
string project_id =2;
string host_catalog_id = 3;
// This host set's id.
string id = 4;
// A list of host uris which should not be in the host set when this request returns.
repeated string host_uris = 5;
}
message RemoveFromHostSetResponse {
}