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/testing/attribute/v1/attribute.proto

173 lines
4.0 KiB

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
syntax = "proto3";
package testing.attribute.v1;
import "controller/custom_options/v1/options.proto";
import "google/api/annotations.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/struct.proto";
import "protoc-gen-openapiv2/options/annotations.proto";
option go_package = "github.com/hashicorp/boundary/internal/gen/testing/attribute;attribute";
option (controller.custom_options.v1.domain) = "test";
message TestResource {
string id = 1;
string type = 2;
string other_id = 3 [(controller.custom_options.v1.subtype_source_id) = true];
oneof attrs {
google.protobuf.Struct attributes = 10 [(controller.custom_options.v1.subtype) = "default"];
TestSubResourceAttributes sub_resource_attributes = 20 [(controller.custom_options.v1.subtype) = "sub_resource"];
}
}
message TestSubResourceAttributes {
string name = 1;
}
message TestNoAttributes {
string id = 1;
string type = 2;
}
message TestNoOneOf {
string id = 1;
string type = 2;
google.protobuf.Struct attributes = 10;
}
message TestCustomTransformation {
string some_random_id = 1;
string secondary_id = 2;
oneof attrs {
google.protobuf.Struct attributes = 10;
TestSubResourceAttributes sub_resource_attributes = 20;
}
}
service TestResourceService {
rpc TestListResource(TestListResourceRequest) returns (TestListResourceResponse) {
option (google.api.http) = {get: "/v1/test-resources"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {summary: "Test list"};
}
rpc TestCreateResource(TestCreateResourceRequest) returns (TestCreateResourceResponse) {
option (google.api.http) = {
post: "/v1/test-resources"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {summary: "Test create"};
}
rpc TestUpdateResource(TestUpdateResourceRequest) returns (TestUpdateResourceResponse) {
option (google.api.http) = {
patch: "/v1/test-resources/{id}"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {summary: "Test update"};
}
rpc TestGetResource(TestGetResourceRequest) returns (TestGetResourceResponse) {
option (google.api.http) = {
get: "/v1/test-resources/{id}"
response_body: "item"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {summary: "Test get"};
}
}
message TestListResourceRequest {}
message TestListResourceResponse {
repeated TestResource items = 1;
}
message TestGetResourceRequest {
string id = 1;
}
message TestGetResourceResponse {
TestResource item = 1;
}
message TestCreateResourceRequest {
TestResource item = 2;
}
message TestCreateResourceResponse {
TestResource item = 1;
}
message TestUpdateResourceRequest {
string id = 1;
TestResource item = 2;
google.protobuf.FieldMask update_mask = 3 [json_name = "update_mask"];
}
message TestUpdateResourceResponse {
TestResource item = 1;
}
message TestRequestNoItem {
string name = 1;
}
message TestRequestItemNotMessage {
string item = 1;
}
message TestItemNoType {
string id = 1;
}
message TestRequestItemNoType {
TestItemNoType item = 1;
}
message TestNoItemAttributes {
string id = 1;
oneof attrs {
google.protobuf.Struct attributes = 10 [(controller.custom_options.v1.subtype) = "default"];
TestSubResourceAttributes sub_resource_attributes = 20 [(controller.custom_options.v1.subtype) = "sub_resource"];
}
}
message TestCreateNoOneOfRequest {
TestNoOneOf item = 1;
}
message TestUpdateNoOneOfRequest {
string id = 1;
TestNoOneOf item = 2;
}
message TestResponseNoItem {
string name = 1;
}
message TestResponseItemNotMessage {
string item = 1;
}
message TestResponseItemNoType {
TestItemNoType item = 1;
}
message TestCreateNoOneOfResponse {
TestNoOneOf item = 1;
}
message TestUpdateNoOneOfResponse {
TestNoOneOf item = 1;
}